一,进行环境搭建,这里就不详细说明了
二,编写实体类
三,新建dao层接口,加上crud方法
四,在Mapper的配置文件中 写入sql
五,执行sql
接下来看详细步骤:
编写User实体类
package com.qst.domain;
public class User {
private Integer id;
private String username;
private String gender;
private String email;
private Integer did;
public void setId(Integer id) {
this.id = id;
}
public void setUsername(String username) {
this.username = username;
}
public void setGender(String gender) {
this.gender = gender;
}
public void setEmail(String email) {
this.email = email;
}
public void setDid(Integer did) {
this.did = did;
}
public Integer getId() {
return id;
}
public String getUsername() {
return username;
}
public String getGender() {
return gender;
}
public String getEmail() {
return email;
}
public Integer getDid() {
return did;
}
@Override
public String toString() {
return "User{" +
"id=" + id +
", username='" + username + '\'' +
", gender=" + gender +
", email='" + email + '\'' +
", did=" + did +
'}';
}
}
新建IUserDao接口
package com.qst.dao;
import com.qst.domain.User;
import java.util.List;
public interface IUserDao {
List<User> findAll();
void saveUser(User user);
void updateUser(User user);
void delUser(Integer id);
}
新建Config配置文件用来连接数据库以及mapper映射文件
<?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/mybatis"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/qst/dao/IUserDao.xml"></mapper>
</mappers>
</configuration>
在IUserDao配置文件中 写入增删改查的sql语句
<?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.qst.dao.IUserDao">
<!--查询所有-->
<!--resultType用来指定封装类-->
<select id="findAll" resultType="com.qst.domain.User">
select * from employee
</select>
<!--插入一组数据-->
<insert id="saveUser" parameterType="com.qst.domain.User">
insert into employee(username,gender,email,did) values (#{username},#{gender},#{email},#{did})
</insert>
<!--修改一组数据-->
<update id="updateUser" parameterType="com.qst.domain.User">
update employee set username=#{username} , gender=#{gender} , email=#{email} , did=#{did} where id=#{id}
</update>
<!-- 删除一组数据-->
<delete id="delUser" parameterType="java.lang.Integer">
delete from employee where id=#{id}
</delete>
</mapper>
新建一个测试类用来执行sql
package com.qst;
import com.qst.dao.IUserDao;
import com.qst.domain.User;
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 org.junit.After;
import org.junit.Before;
import org.junit.Test;
import java.io.IOException;
import java.io.InputStream;
import java.util.List;
public class MybatisTest {
private InputStream in;
private SqlSession sqlSession;
private IUserDao userDao ;
@Before
public void init() throws IOException {
in = Resources.getResourceAsStream("Config.xml");
SqlSessionFactory factory = new SqlSessionFactoryBuilder().build(in);
sqlSession = factory.openSession();
userDao= sqlSession.getMapper(IUserDao.class);
}
@After
public void destory() throws IOException{
sqlSession.close();
in.close();
}
@Test
public void findAll() {
List<User> users = userDao.findAll();
for(User user : users){
System.out.println(user);
}
}
@Test
public void saveUser(){
User user = new User();
user.setUsername("mys");
user.setGender("2");
user.setEmail("112313");
user.setDid(1);
userDao.saveUser(user);
sqlSession.commit();
}
@Test
public void updateUser(){
User user = new User();
user.setId(11);
user.setUsername("ys");
user.setGender("2");
user.setEmail("112313");
user.setDid(1);
userDao.updateUser(user);
sqlSession.commit();
}
@Test
public void delUser(){
userDao.delUser(11);
sqlSession.commit();
}
}