<?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"><mappernamespace="test"><selectid="findUserById"parameterType="Integer"resultType="com.lanou.bean.User">
select * from User where id = #{**}
</select><selectid="findUserByName"parameterType="String"resultType="com.lanou.bean.User">
select * from User where name like "%${value}%"
</select></mapper>
MyTest.java
如果当前参数需要拼接到字符串中就使用${value}
如果只有一个参数 value是固定的
因为#{xx}会在字符串的左右加上引号}select * from User where name like "%${value}%"select * from User where name like "%"#{value}"%"
resultTRype是结果的泛型 如果有多个结果 就自动封装为list
publicvoidfun2() throws IOException {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream input = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = builder.build(input);
SqlSession session = factory.openSession();
// 模糊查找
List<User> list = session.selectList("test.findUserByName", "曹");
System.out.println(list);
}
<?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="test">
<select id="findUserById" parameterType="Integer" resultType="com.lanou.bean.User">
select * from User where id = #{**}
</select>
<select id="findUserByName" parameterType="String" resultType="com.lanou.bean.User">
select * from User where name like "%${value}%"
</select>
<insert id="insertUser" parameterType="com.lanou.bean.User">
insert into User values (null,#{name},#{password},#{sex})
</insert>
</mapper>
publicvoidfun3() throws IOException {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
User user = new User();
user.setName("曹丕");
user.setPassword("12345");
user.setSex("男");
int i = session.insert("test.insertUser", user);
System.out.println(i);
}
更新user数据
除了查询操作 都需要提交事务 因为默认不会提交
<?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><propertiesresource="db.properties"></properties><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><propertyname="driver"value="${driver}"/><propertyname="url"value="${url}"/><propertyname="username"value="${username}"/><propertyname="password"value="${password}"/></dataSource></environment></environments><mappers><mapperresource="com/lanou/bean/User.xml"/></mappers></configuration><?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"><mappernamespace="test"><selectid="findUserById"parameterType="Integer"resultType="com.lanou.bean.User">
select * from User where id = #{**}
</select><selectid="findUserByName"parameterType="String"resultType="com.lanou.bean.User">
select * from User where name like "%${value}%"
</select><insertid="insertUser"parameterType="com.lanou.bean.User">
insert into User values (null,#{name},#{password},#{sex})
</insert><updateid="updateUser"parameterType="com.lanou.bean.User">
update User set name=#{name},password=#{password},sex=#{sex} where id=#{id}
</update></mapper>
public void testFun4() throws IOException{
// 构建器
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
// 读取配置文件
InputStream input = Resources.getResourceAsStream("SqlMapConfig.xml");
// 1.获取会话工厂
SqlSessionFactory factory = builder.build(input);
// 2.获取会话
SqlSession session = factory.openSession();
// 3.crud
// 添加新用户
User user = new User();
user.setName("曹植");
user.setPassword("123");
user.setSex("男");
user.setId(3);
// 调用sql 插入的返回值为影响的行数
int insert = session.insert("test.updateUser", user);
// 除了查询操作 都需要提交事务 因为默认不会自动提交
session.commit();
System.out.println(insert);
}
删除数据
<?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="test">
<select id="findUserById" parameterType="Integer" resultType="com.lanou.bean.User">
select * from User where id = #{**}
</select>
<select id="findUserByName" parameterType="String" resultType="com.lanou.bean.User">
select * from User where name like "%${value}%"
</select>
<insert id="insertUser" parameterType="com.lanou.bean.User">
insert into User values (null,#{name},#{password},#{sex})
</insert>
<update id="updateUser" parameterType="com.lanou.bean.User">
update User set name=#{name},password=#{password},sex=#{sex} where id=#{id}
</update>
<delete id="deleteUserById" parameterType="Integer">
delete from user where id = #{param}
</delete>
</mapper>
publicvoidfun5() throws IOException {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
int i = session.delete("test.deleteUserById", 3);
System.out.println(i);
session.commit();
}
插入数据 然后获取id
useGeneratedKeys="true" keyProperty="id"
最后通过输入的参数对象 来获取id
<?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="test">
<select id="findUserById" parameterType="Integer" resultType="com.lanou.bean.User">
select * from User where id = #{**}
</select>
<select id="findUserByName" parameterType="String" resultType="com.lanou.bean.User">
select * from User where name like "%${value}%"
</select>
<insert id="insertUser" parameterType="com.lanou.bean.User">
insert into User values (null,#{name},#{password},#{sex})
</insert>
<update id="updateUser" parameterType="com.lanou.bean.User">
update User set name=#{name},password=#{password},sex=#{sex} where id=#{id}
</update>
<delete id="deleteUserById" parameterType="Integer">
delete from user where id = #{param}
</delete>
<insert id="insertNewUser" parameterType="com.lanou.bean.User"
useGeneratedKeys="true" keyProperty="id" >
insert into User values (null,#{name},#{password},#{sex})
</insert>
</mapper>
publicvoidfun6() throws IOException {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
User user = new User();
user.setName("孙尚香");
user.setSex("女");
user.setPassword("1235");
session.insert("test.insertNewUser", user);
int id = user.getId();
System.out.println(id);
session.commit();
}
<?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><propertiesresource="db.properties"></properties><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><propertyname="driver"value="${driver}"/><propertyname="url"value="${url}"/><propertyname="username"value="${username}"/><propertyname="password"value="${password}"/></dataSource></environment></environments><mappers><mapperresource="com/lanou/bean/User.xml"/></mappers></configuration>
User.xml
<?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"><mappernamespace="test"><selectid="findUserById"parameterType="Integer"resultType="com.lanou.bean.User">
select * from User where id = #{**}
</select></mapper>
UserDao.java
package com.lanou.dao;
import com.lanou.bean.User;
publicinterfaceUserDao {public User findUserById(int id);
}
<?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"><mappernamespace="com.lanou.dao.DogDao"><selectid="getAllDog"resultType="com.lanou.bean.Dog">
select * from Dog
</select></mapper>
MybatisProxyTest.java
public void test2() throws IOException {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
DogDao dao = session.getMapper(DogDao.class);
List<Dog> list = dao.getAllDog();
System.out.println(list);
}
理解纯接口开发原理
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><propertiesresource="db.properties"></properties><environmentsdefault="development"><environmentid="development"><transactionManagertype="JDBC"/><dataSourcetype="POOLED"><propertyname="driver"value="${driver}"/><propertyname="url"value="${url}"/><propertyname="username"value="${username}"/><propertyname="password"value="${password}"/></dataSource></environment></environments><mappers><mapperresource="com/lanou/dao/UserDao.xml"/></mappers></configuration>
UserDao.java
package com.lanou.dao;
import com.lanou.bean.User;
publicinterfaceUserDao {public User findUserById(int id);
}
UserDao.xml
<?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"><mappernamespace="com.lanou.dao.UserDao"><selectid="findUserById"parameterType="Integer"resultType="com.lanou.bean.User">
select * from User where id = #{param}
</select></mapper>
UserDaoTest.java
publicclassUserDaoTest {@TestpublicvoidtestName() throws Exception {
SqlSessionFactoryBuilder builder = new SqlSessionFactoryBuilder();
InputStream inputStream = Resources.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactory factory = builder.build(inputStream);
SqlSession session = factory.openSession();
UserDao dao = new UserDao() {
@Overridepublic User findUserById(int id) {
// TODO Auto-generated method stubreturn session.selectOne("com.lanou.dao.UserDao.findUserById", id);
}
};
User user = dao.findUserById(10);
System.out.println(user);
}
}