Mybatis练习(1)

由于之前项目用到的都是Hibernate,现在突然改用MyBatis,所以要重新研究一下,还好基本原理是差不离。在Hibernate的基础上再去学MyBatis,个人觉得起到了事半功倍的作用。
MyBatis是一个支持普通SQL查询,存储过程和高级映射的优秀持久层框架。MyBatis消除了几乎所有的JDBC代码和参数的手工设置以及对结果集的检索封装。MyBatis可以使用简单的XML或注解用于配置和原始映射,将接口和Java的POJO(Plain Old Java Objects,普通的Java对象)映射成数据库中的记录。
好,创建JavaWeb项目这些太基础咱们就不去说了,添加相应的Jar包,一个是mybatis的jar包mybatis-3.2.8.jar,一个是数据库驱动的,我用的是mysql所以是mysql-connector-java-3.0.14-production-bin.jar。
添加Mybatis的配置文件conf.xml
在src目录下创建一个conf.xml文件,如下图所示:
Mybatis练习(1)
文章图片

conf.xml文件中的内容如下:




















定义表对应的实体类


public class User {


private int id;
private String name;
private String password;
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;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}


}
定义操作user表的sql映射文件user.xml,我直接放在实体类对应的包下

Mybatis练习(1)
文章图片


user.xml文件的内容如下:















insert into user (name,password) values (#{name},#{password})

resultType="com.ucs.test.model.User">
select * from user where id=#{id}




在conf.xml文件中注册user.xml文件













【Mybatis练习(1)】










编写测试代码:执行定义的语句

public class Test {


public static void main(String[] args) throws IOException {
// TODO Auto-generated method stub
String resource = "conf.xml";
// 使用类加载器加载mybatis的配置文件(它也加载关联的映射文件)
// InputStream is =
// Test.class.getClassLoader().getResourceAsStream(resource);


// 构建sqlSession的工厂
// SqlSessionFactory sessionFactory = new
// SqlSessionFactoryBuilder().build(is);
// 使用MyBatis提供的Resources类加载mybatis的配置文件(它也加载关联的映射文件)
Reader reader = Resources.getResourceAsReader(resource);
// 构建sqlSession的工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
// 创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();


/**
* 映射sql的标识字符串,
* me.gacl.mapping.userMapper是userMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "com.ucs.test.model.User.getUser"; // 映射sql的标识字符串
// com.ucs.test.model.user
// 执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
session.close();
System.out.println("name:"+user.getName());
}


}



最后有问题可以联系qq:1774900724

    推荐阅读