一个简单的例子
我对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下编译通过
|