基于xml的Mybatis 增删改查操作与配置说明
目录结构
核心依赖
<dependency>
<groupId>org.mybatis
</groupId>
<artifactId>mybatis
</artifactId>
<version>3.5.4
</version>
</dependency>
<dependency>
<groupId>mysql
</groupId>
<artifactId>mysql-connector-java
</artifactId>
<version>5.1.6
</version>
</dependency>
1、编写dao接口
public interface IUserDao {
List
<User> findAll();
void saveUser(User user
);
void deleteUser(Integer id
);
void updataUser(User user
);
User
findone(Integer id
);
List
<User> findmohu(String username
);
List
<User> findmohuorg(vo Susername
);
int shuliang();
}
2、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="mysql">
<environment id="mysql">
<transactionManager type="JDBC"></transactionManager>
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/mybatis01?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="123456"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/ljq/dao/IUserDao.xml"/>
</mappers>
</configuration>
3、IUserDao.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">
<mapper namespace="com.ljq.dao.IUserDao">
<resultMap id="userMap" type="com.ljq.domain.User">
<id property="id" column="id" ></id>
<result property="username" column="username"></result>
<result property="birthday" column="birthday"></result>
<result property="sex" column="sex"></result>
<result property="address" column="address"></result>
</resultMap>
<select id="findAll" resultMap="userMap">
select * from user
</select>
<insert id="saveUser" parameterType="com.ljq.domain.User">
<selectKey keyProperty="id" keyColumn="id" resultType="int" order="AFTER">
select last_insert_id();
</selectKey>
insert into user(username,address,sex,birthday)values (#{username},#{address},#{sex},#{birthday});
</insert>
<delete id="deleteUser" parameterType="Integer">
delete from user where id=#{uid}
</delete>
<update id="updataUser" parameterType="com.ljq.domain.User">
update user set username=#{username},birthday=#{birthday},sex=#{sex},address=#{address} where id=#{id};
</update>
<select id="findone" resultType="com.ljq.domain.User" parameterType="int">
select * from user where id=#{uid}
</select>
<select id="findmohu" resultType="com.ljq.domain.User" parameterType="String">
select * from user where username like #{username}
</select>
<select id="findmohuorg" resultType="com.ljq.domain.User" parameterType="com.ljq.domain.vo">
select * from user where username like #{user.username}
</select>
<select id="shuliang" resultType="int">
select count(*) from user;
</select>
</mapper>
测试
public class MybatisTest {
private InputStream in
;
private SqlSession sqlSession
;
private IUserDao userDao
;
@Before
public void init() throws Exception
{
in
= Resources
.getResourceAsStream("SqlMapConfig.xml");
SqlSessionFactoryBuilder builder
= new SqlSessionFactoryBuilder();
SqlSessionFactory factory
= builder
.build(in
);
sqlSession
= factory
.openSession();
userDao
= sqlSession
.getMapper(IUserDao
.class);
}
@After
public void destory() throws Exception
{
sqlSession
.commit();
sqlSession
.close();
in
.close();
}
@Test
public void testfindAll() {
List
<User> users
= userDao
.findAll();
for (User user
:users
){
System
.out
.println(user
);
}
}
@Test
public void testsave(){
User user
= new User();
user
.setUsername("阿良良子");
user
.setAdress("公安县");
user
.setSex("女");
user
.setBirthday(new Date());
System
.out
.println(user
);
userDao
.saveUser(user
);
System
.out
.println(user
);
}
@Test
public void testupdataUser(){
User user
= new User();
user
.setId(51);
user
.setUsername("阿良良木子");
user
.setAdress("公安县");
user
.setSex("男");
user
.setBirthday(new Date());
userDao
.updataUser(user
);
}
@Test
public void testdetele(){
userDao
.deleteUser(52);
}
@Test
public void testfindone(){
User user
= new User();
user
= userDao
.findone(48);
System
.out
.println(user
.toString());
}
@Test
public void testfindmohu(){
List
<User> users
= new ArrayList<User>();
users
= userDao
.findmohu("%王%");
for (User user
:users
){
System
.out
.println(user
.toString());
}
}
@Test
public void testfindmohuorg(){
User user
= new User();
vo v
= new vo();
user
.setUsername("%王%");
v
.setUser(user
);
List
<User> users
= userDao
.findmohuorg(v
);
for (User u
:users
){
System
.out
.println(u
.toString());
}
}
@Test
public void testshu(){
int count
= userDao
.shuliang();
System
.out
.println(count
);
}
}
List
<User> users
= userDao
.findmohuorg(v
);
for (User u
:users
){
System
.out
.println(u
.toString());
}
}
@Test
public void testshu(){
int count
= userDao
.shuliang();
System
.out
.println(count
);
}
}