十年网站开发经验 + 多家企业客户 + 靠谱的建站团队
量身定制 + 运营维护+专业推广+无忧售后,网站问题一站解决
1,输出数据库版本变量为xml格式
盱眙网站建设公司创新互联,盱眙网站设计制作,有大型网站制作公司丰富经验。已为盱眙上1000+提供企业网站建设服务。企业网站搭建\外贸网站制作要多少钱,请找那个售后服务好的盱眙做网站的公司定做!
Shell mysql -X -uroot -proot -e "use test; show variables like '%version%';"
参数X表示生成xml格式的输出 , 参数e表示执行后面的命令
?xml version="1.0"?
resultset statement="show variables like '%version%'"
row
field name="Variable_name"protocol_version/field
field name="Value"10/field
/row
row
field name="Variable_name"version/field
field name="Value"5.0.22-community-nt-log/field
/row
row
field name="Variable_name"version_comment/field
field name="Value"MySQL Community Edition (GPL)/field
/row
row
field name="Variable_name"version_compile_machine/field
field name="Value"ia32/field
/row
row
field name="Variable_name"version_compile_os/field
field name="Value"Win32/field
/row
/resultset
my test:
mysql -u ccc bank -e "select * from person;"
mysql -X -u ccc bank -e "select * from person;"
*********************************************************************
2,导出表数据到xml文件
Shell mysql -X -uroot -proot -e "use test; select * from test;" ./a.xml
Shell more a.xml
?xml version="1.0"?
resultset statement="select * from test"
row
field name="id"111/field
/row
row
field name="id"10/field
/row
row
field name="id"1/field
/row
row
field name="id"110/field
/row
/resultset
my test:
mysql -u ccc bank -e "select * from person;" ./mysql_noxml.txt
mysql -X -u ccc bank -e "select * from person;" ./mysql_xml.xml
*********************************************************************
3,换一种方式导出表结构和内容,其中第一个db_name是数据库名,第二个test是表名
Shell mysqldump --xml -uroot -proot db_name test
?xml version="1.0"?
mysqldump xmlns:xsi=""
database name="db_name"
table_structure name="test"
field Field="id" Type="int(11)" Null="YES" Key="" Extra="" /
options Name="test" Engine="InnoDB" Version="10" Row_format="Compact" Rows="4" Avg_row_length="4096" Data_length="16384" Max_data_length="0" Index_length="0" Data_free="0" Create_time
="2008-09-04 02:45:12" Collation="utf8_general_ci" Create_options="" Comment="InnoDB free: 11264 kB" /
/table_structure
table_data name="test"
row
field name="id"111/field
/row
row
field name="id"10/field
/row
row
field name="id"1/field
/row
row
field name="id"110/field
/row
/table_data
/database
/mysqldump
my tests:
Shell mysqldump --xml -u ccc bank person
*********************************************************************
4,导入xml文件的内容到数据库表,这里主要用到了load_file()函数
mysql create table xmlt(
- id int ,
- doc blob
- );
mysql insert into xmlt values(1,load_file('/home/a.xml') );
mysql select * from xmlt;
+------+--------------------------------------
----------------------------------------------
| id | doc
+------+--------------------------------------
----------------------------------------------
| 1 | ?xml version="1.0"?
resultset statement="select * from test"
row
field name="id"111/field
/row
row
field name="id"10/field
/row
row
field name="id"1/field
/row
row
field name="id"110/field
/row
/resultset
后记:由此类推还可以使用存储过程的方式将xml数据导入和导出
如题,是把(用mysql导出的xml文件)重新插入进mysql数据库中,不是原始的xmlmysql导出的xml文件也是标准的xml文件,根节点是数据库名,重复节点是表名,
1、最简单方式,拼串直接IO至文件中。
2、用xml的生成插件,如dom4j,jdom等,操作后生成对象,再写入文件。
将有小于符号的sql语句放到下面语法的文本内容部分中,就可以了。
![CDATA[文本内容]]
查询语句是 MyBatis 中最常用的元素之一,本文涉及mybatis的单表查询操作,关联表有关的查询会后续补充。
巧妇难为无米之炊,要想从数据库中表中取出数据并转化为javaBean,所以,我们要先准备javabean以及与其对应的数据表。
javaBean:
public class President {
private int id;
private String name;
@Override
public String toString() {
return "President [id=" + id + ", name=" + name + "]";
}
//get set 方法.....
}
创建两个对应的数据库表,并插入两条数据:
create table president1(
p_id int not null auto_increment primary key,
p_name varchar(50) not null
);
insert into president1(p_name) values('lily'),('Tom');
create table president2(
id int not null auto_increment primary key,
name varchar(50) not null
);
insert into president2(name) values('lily'),('Tom');
创建两个数据库是为了测试两个不同的查询状况,
数据库字段名与实体类属性名相同
从sql表可以看出president2的字段名与javabean:President的属性名完全相同,这种情况下mybatis的select操作非常简单:
!-- 从表 president2中查询--
select id="getPreByIdPresident2" parameterType="int" resultType="President"
select * from president2 where id=#{id}
/select
此时mybatis运用反射机制会将查询返回的结果(id,name)封装成President对象。
如果从表president1中查询,同样采用上面的sql语句
!-- 从表 president1中查询--
select id="getPreByIdPresident1" parameterType="int" resultType="President"
span style="white-space:pre" /spanPresident p1 = session.selectOne(statement+"getPreByIdPresident1", 1);
span style="white-space:pre" /spanSystem.out.println("表president1中查询"+p1);
/select
此时如果用getPreByIdPresident1进行查询,返回的结果会是null,我们将上面的sql语句在mysql中执行下:
有结果返回,但是返回的字段名为(p_id,p_name)这种结果mybatis在解析时无法与President类对应。多数情况下实体类属性名与数据库表的字段名都会有差异,这种情况如果mybatis不能处理也就太low了。
select * from 表名 limit #{从第几条开始查},#{每页的大小}mybatis mysql分页mapxml中怎么写