user数据表
User实体类
public class User {
private int id;
private String name;
private String pwd;
public User() {
}
public User(int id, String name, String pwd) {
this.id = id;
this.name = name;
this.pwd = pwd;
}
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 getPwd() {
return pwd;
}
public void setPwd(String pwd) {
this.pwd = pwd;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", name='" + name + '\'' +
", pwd='" + pwd + '\'' +
'}';
}
}
SqlMapConfig.xml
<?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>
<!--数据源环境-->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<!-- 加载映射文件-->
<mappers>
<mapper resource="com/ruan/mapper/UserMapper.xml"></mapper>
</mappers>
</configuration>
查询
插入操作注意问题
插入语句使用insert标签
在映射文件中使用parameterType属性指定要插入的数据类型
Sq|语句中使用#(实体属性名}方式引用实体中的属性值
插入操作使用的API是sqlSession.insert( “命名空间id” ,实体对象);
插入操作涉及数据库数据变化,所以要使用sqISession对象 显示的提交事务,即sqISession.commit()
UserMapper.xmI
<?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="UserMapper">
<select id="findAll" resultType="com.ruan.domain.User">
select * from user
</select>
</mapper>
测试类
@Test
public void test() throws IOException {
//加载核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("com/ruan/mapper/sqlMapConfig.xml");
//获得sqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行sq1语可
List<User> userList = sqlSession.selectList("UserMapper.findAll");
//打印结果
System.out.println(userList);
//释放资源
sqlSession.close();
}
测试结果
添加
<insert id="save" parameterType="com.ruan.domain.User">
insert into user values (#{id},#{name},#{pwd})
</insert>
测试
@Test
public void test1() throws IOException {
//模拟user对象
User user = new User();
user.setId(4);
user.setName("root");
user.setPwd("41564");
//加载核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("com/ruan/mapper/sqlMapConfig.xml");
//获得sqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
//执行sq1语可
sqlSession.insert("UserMapper.save",user);
//mybatis执行更新工作不提交事务,要手动提交
sqlSession.commit();
//释放资源
sqlSession.close();
}
更新
<update id="update" parameterType="com.ruan.domain.User">
update user set name=#{name},pwd=#{pwd} where id=#{id}
</update>
@Test
public void test2() throws IOException {
//模拟user对象
User user = new User();
user.setId(4);
user.setName("xxxx");
user.setPwd("6666");
//加载核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("com/ruan/mapper/sqlMapConfig.xml");
//获得sqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.update("UserMapper.update",user);
sqlSession.commit();
sqlSession.close();
}
删除
<delete id="delete" parameterType="java.lang.Integer">
delete from user where id=#{id}
</delete>
@Test
public void test3() throws IOException {
//加载核心配置文件
InputStream resourceAsStream = Resources.getResourceAsStream("com/ruan/mapper/sqlMapConfig.xml");
//获得sqlSession工厂对象
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(resourceAsStream);
//获得sqlSession对象
SqlSession sqlSession = sqlSessionFactory.openSession();
sqlSession.delete("UserMapper.delete",4);
sqlSession.commit();
sqlSession.close();
}