Chinaunix
标题: MyBatis学习(一) [打印本页]
作者: 高傲的活着 时间: 2011-12-19 14:02
标题: MyBatis学习(一)
一个简单的例子
我对MyBatis的理解仅仅是:它以前叫IBtais,现在投到谷歌帐下,改名MyBatis,这个框架把JDBC中的重复代码封装起来,减少代码量。仅仅知道这些而已,慢慢学习吧,从网上找了一个最简单的例子。
MyBatis+MySQL的,记录如下:
①数据库
在MySQL中,test数据库下,简历user表,一共两个字段id和name,建表语句略。
②需导入的包
只有两个:
mybatis-3.0.3.jar
mysql-connector-java-5.1.9-bin.jar(JDBC包)
③目录结构
采用最简单的结构,domain包下有且仅有四个文件
configuration.xml
User.xml
User.java
Test.java
④实体类javabean,总共两个变量
view plaincopy to clipboardprint?
01.package domain;
02.
03.public class User {
04. private int id;
05. private String name = null;
06. public User() {
07. }
08. public User(int id, String name) {
09. this.id = id;
10. this.name = name;
11. }
12. public int getId() {
13. return id;
14. }
15. public void setId(int id) {
16. this.id = id;
17. }
18. public String getName() {
19. return name;
20. }
21. public void setName(String name) {
22. this.name = name;
23. }
24. @Override
25. public String toString() {
26. return "User [id=" + id + ", name=" + name + "]";
27. }
28.}
package domain;
public class User {
private int id;
private String name = null;
public User() {
}
public User(int id, String name) {
this.id = id;
this.name = name;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + "]";
}
}
⑤MyBatis总配置文件configuration.xml
view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="UTF-8" ?>
02.<!DOCTYPE configuration PUBLIC
03. "-//mybatis.org//DTD Config 3.0//EN"
04. "
http://mybatis.org/dtd/mybatis-3-config.dtd">
05.<configuration>
06. <typeAliases>
07. <typeAlias alias="User" type="domain.User" />
08. </typeAliases>
09. <environments default="development">
10. <environment id="development">
11. <transactionManager type="JDBC" />
12. <dataSource type="POOLED">
13. <property name="driver" value="com.mysql.jdbc.Driver" />
14. <property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" />
15. <property name="username" value="root" />
16. <property name="password" value="" />
17. </dataSource>
18. </environment>
19. </environments>
20. <mappers>
21. <mapper resource="domain/User.xml" />
22. </mappers>
23.</configuration>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE configuration PUBLIC
"-//mybatis.org//DTD Config 3.0//EN"
"
http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<typeAliases>
<typeAlias alias="User" type="domain.User" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test?useUnicode=true&characterEncoding=UTF-8" />
<property name="username" value="root" />
<property name="password" value="" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="domain/User.xml" />
</mappers>
</configuration>
⑥User类的配置文件User.xml
view plaincopy to clipboardprint?
01.<?xml version="1.0" encoding="UTF-8" ?>
02.<!DOCTYPE mapper PUBLIC
03. "-//mybatis.org//DTD Mapper 3.0//EN"
04. "
http://mybatis.org/dtd/mybatis-3-mapper.dtd">
05.<mapper namespace="User">
06. <select id="selectUser" parameterType="int" resultType="User"><!--[CDATA[
07. select * from user where id = #{id}
08. ]]--></select>
09.</mapper>
<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE mapper PUBLIC
"-//mybatis.org//DTD Mapper 3.0//EN"
"
http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="User">
<select id="selectUser" parameterType="int" resultType="User"><!--[CDATA[
select * from user where id = #{id}
]]--></select>
</mapper>
⑦测试用例
view plaincopy to clipboardprint?
01.package domain;
02.
03.import java.io.IOException;
04.import java.io.Reader;
05.import org.apache.ibatis.io.Resources;
06.import org.apache.ibatis.session.SqlSession;
07.import org.apache.ibatis.session.SqlSessionFactory;
08.import org.apache.ibatis.session.SqlSessionFactoryBuilder;
09.import domain.User;
10.
11.public class Test {
12. public static void main(String[] args) throws IOException {
13. String resource = "domain/configuration.xml";
14. Reader reader = Resources.getResourceAsReader(resource);
15. SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
16. SqlSession session = ssf.openSession();
17. try {
18. User user = (User) session.selectOne("selectUser", "1");
19. System.out.println(user);
20. } catch (Exception e) {
21. e.printStackTrace();
22. } finally {
23. session.close();
24. }
25. }
26.}
package domain;
import java.io.IOException;
import java.io.Reader;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
import domain.User;
public class Test {
public static void main(String[] args) throws IOException {
String resource = "domain/configuration.xml";
Reader reader = Resources.getResourceAsReader(resource);
SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(reader);
SqlSession session = ssf.openSession();
try {
User user = (User) session.selectOne("selectUser", "1");
System.out.println(user);
} catch (Exception e) {
e.printStackTrace();
} finally {
session.close();
}
}
}
以上,MyEclipse 8.5下编译通过
欢迎光临 Chinaunix (http://bbs.chinaunix.net/) |
Powered by Discuz! X3.2 |