版权声明:柠萌 https://blog.csdn.net/Hack_Different/article/details/82965812
一、准备
1.pom.xml
<!--引入mybatis依赖-->
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.4</version>
</dependency>
<!--引入mysql连接依赖-->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.43</version>
</dependency>
在build下加入
<!--加载src/main/java下所有的xml文件-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
2.mybatisConfig.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>
<!--1. 配置数据库环境,默认使用development数据库构建环境-->
<environments default="development">
<!--配置环境变量-->
<environment id="development">
<!--配置事务管理器类别-->
<transactionManager type="JDBC"/>
<!--配置数据源-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://localhost:3306/test?characterEncoding=utf-8"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>
</environment>
</environments>
<!--2. 加载映射器:实体类对象/关系映射文件-->
<mappers>
<!-- 注:整合后才能用*加载多个 -->
<mapper resource="cn/kaxlm6/mybatis/mapper/UsUserMapper.xml"/>
</mappers>
</configuration>
3.UsUser.java
/**
* (UsUser)TableInfo(obj=table:us_user, name=UsUser, comment=null, fullColumn=[ColumnInfo(obj=column:User_No, name=userNo, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Name, name=userName, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_ABC, name=userAbc, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_CreateDate, name=userCreatedate, comment=null, type=java.util.Date, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_Address, name=userAddress, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_detailAddress, name=userDetailaddress, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Phone, name=userPhone, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_SMSPhone, name=userSmsphone, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:Area_ID, name=areaId, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_Type, name=userType, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_PayType, name=userPaytype, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_BankName, name=userBankname, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_BankNum, name=userBanknum, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Formula, name=userFormula, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Money, name=userMoney, comment=null, type=java.lang.Double, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:Mt_ID, name=mtId, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_DocNum, name=userDocnum, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Pwd, name=userPwd, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_ContractNum, name=userContractnum, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_ContractDate, name=userContractdate, comment=null, type=java.util.Date, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_VolumeID, name=userVolumeid, comment=null, type=java.lang.Object, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_VolumeOrderIndex, name=userVolumeorderindex, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_stauts, name=userStauts, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={})], pkColumn=[ColumnInfo(obj=column:User_No, name=userNo, comment=null, type=java.lang.String, shortType=String, custom=false, ext={})], otherColumn=[ColumnInfo(obj=column:User_Name, name=userName, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_ABC, name=userAbc, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_CreateDate, name=userCreatedate, comment=null, type=java.util.Date, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_Address, name=userAddress, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_detailAddress, name=userDetailaddress, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Phone, name=userPhone, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_SMSPhone, name=userSmsphone, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:Area_ID, name=areaId, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_Type, name=userType, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_PayType, name=userPaytype, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_BankName, name=userBankname, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_BankNum, name=userBanknum, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Formula, name=userFormula, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Money, name=userMoney, comment=null, type=java.lang.Double, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:Mt_ID, name=mtId, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_DocNum, name=userDocnum, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_Pwd, name=userPwd, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_ContractNum, name=userContractnum, comment=null, type=java.lang.String, shortType=String, custom=false, ext={}), ColumnInfo(obj=column:User_ContractDate, name=userContractdate, comment=null, type=java.util.Date, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_VolumeID, name=userVolumeid, comment=null, type=java.lang.Object, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_VolumeOrderIndex, name=userVolumeorderindex, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={}), ColumnInfo(obj=column:User_stauts, name=userStauts, comment=null, type=java.lang.Integer, shortType=null, custom=false, ext={})], savePackageName=cn.kaxlm6.mybatis, savePath=./src/main/java/cn/kaxlm6/mybatis, saveModelName=mybatisProject)
*
* @author xlm
* @since 2018-10-08 10:58:51
*/
public class UsUser implements Serializable {
private static final long serialVersionUID = 440092213312747616L;
private String userNo;
private String userName;
private String userAbc;
private Date userCreatedate;
private String userAddress;
private String userDetailaddress;
private String userPhone;
private String userSmsphone;
private Integer areaId;
private String userType;
private String userPaytype;
private String userBankname;
private String userBanknum;
private String userFormula;
private Double userMoney;
private Integer mtId;
private String userDocnum;
private String userPwd;
private String userContractnum;
private Date userContractdate;
private Object userVolumeid;
private Integer userVolumeorderindex;
private Integer userStauts;
public String getUserNo() {
return userNo;
}
public void setUserNo(String userNo) {
this.userNo = userNo;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getUserAbc() {
return userAbc;
}
public void setUserAbc(String userAbc) {
this.userAbc = userAbc;
}
public Date getUserCreatedate() {
return userCreatedate;
}
public void setUserCreatedate(Date userCreatedate) {
this.userCreatedate = userCreatedate;
}
public String getUserAddress() {
return userAddress;
}
public void setUserAddress(String userAddress) {
this.userAddress = userAddress;
}
public String getUserDetailaddress() {
return userDetailaddress;
}
public void setUserDetailaddress(String userDetailaddress) {
this.userDetailaddress = userDetailaddress;
}
public String getUserPhone() {
return userPhone;
}
public void setUserPhone(String userPhone) {
this.userPhone = userPhone;
}
public String getUserSmsphone() {
return userSmsphone;
}
public void setUserSmsphone(String userSmsphone) {
this.userSmsphone = userSmsphone;
}
public Integer getAreaId() {
return areaId;
}
public void setAreaId(Integer areaId) {
this.areaId = areaId;
}
public String getUserType() {
return userType;
}
public void setUserType(String userType) {
this.userType = userType;
}
public String getUserPaytype() {
return userPaytype;
}
public void setUserPaytype(String userPaytype) {
this.userPaytype = userPaytype;
}
public String getUserBankname() {
return userBankname;
}
public void setUserBankname(String userBankname) {
this.userBankname = userBankname;
}
public String getUserBanknum() {
return userBanknum;
}
public void setUserBanknum(String userBanknum) {
this.userBanknum = userBanknum;
}
public String getUserFormula() {
return userFormula;
}
public void setUserFormula(String userFormula) {
this.userFormula = userFormula;
}
public Double getUserMoney() {
return userMoney;
}
public void setUserMoney(Double userMoney) {
this.userMoney = userMoney;
}
public Integer getMtId() {
return mtId;
}
public void setMtId(Integer mtId) {
this.mtId = mtId;
}
public String getUserDocnum() {
return userDocnum;
}
public void setUserDocnum(String userDocnum) {
this.userDocnum = userDocnum;
}
public String getUserPwd() {
return userPwd;
}
public void setUserPwd(String userPwd) {
this.userPwd = userPwd;
}
public String getUserContractnum() {
return userContractnum;
}
public void setUserContractnum(String userContractnum) {
this.userContractnum = userContractnum;
}
public Date getUserContractdate() {
return userContractdate;
}
public void setUserContractdate(Date userContractdate) {
this.userContractdate = userContractdate;
}
public Object getUserVolumeid() {
return userVolumeid;
}
public void setUserVolumeid(Object userVolumeid) {
this.userVolumeid = userVolumeid;
}
public Integer getUserVolumeorderindex() {
return userVolumeorderindex;
}
public void setUserVolumeorderindex(Integer userVolumeorderindex) {
this.userVolumeorderindex = userVolumeorderindex;
}
public Integer getUserStauts() {
return userStauts;
}
public void setUserStauts(Integer userStauts) {
this.userStauts = userStauts;
}
}
4.UsUserDao.java
/**
* (UsUser)表数据库访问层
*
* @author xlm
* @since 2018-10-08 11:27:24
*/
public interface UsUserDao {
/**
* 通过ID查询单条数据
*
* @param userNo 主键
* @return 实例对象
*/
UsUser queryById(String userNo);
/**
* 查询指定行数据
*
* @param offset 查询起始位置
* @param limit 查询条数
* @return 对象列表
*/
List<UsUser> queryAllByLimit(@Param("offset") int offset, @Param("limit") int limit);
/**
* 通过实体作为筛选条件查询
*
* @param usUser 实例对象
* @return 对象列表
*/
List<UsUser> queryAll(UsUser usUser);
/**
* 新增数据
*
* @param usUser 实例对象
* @return 影响行数
*/
int insert(UsUser usUser);
/**
* 修改数据
*
* @param usUser 实例对象
* @return 影响行数
*/
int update(UsUser usUser);
/**
* 通过主键删除数据
*
* @param userNo 主键
* @return 影响行数
*/
int deleteById(String userNo);
}
5.UsUserMapper.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="cn.kaxlm6.mybatis.dao.UsUserDao">
<resultMap type="cn.kaxlm6.mybatis.pojo.UsUser" id="UsUserMap">
<result property="userNo" column="User_No" jdbcType="VARCHAR"/>
<result property="userName" column="User_Name" jdbcType="VARCHAR"/>
<result property="userAbc" column="User_ABC" jdbcType="VARCHAR"/>
<result property="userCreatedate" column="User_CreateDate" jdbcType="TIMESTAMP"/>
<result property="userAddress" column="User_Address" jdbcType="VARCHAR"/>
<result property="userDetailaddress" column="User_detailAddress" jdbcType="VARCHAR"/>
<result property="userPhone" column="User_Phone" jdbcType="VARCHAR"/>
<result property="userSmsphone" column="User_SMSPhone" jdbcType="VARCHAR"/>
<result property="areaId" column="Area_ID" jdbcType="INTEGER"/>
<result property="userType" column="User_Type" jdbcType="VARCHAR"/>
<result property="userPaytype" column="User_PayType" jdbcType="VARCHAR"/>
<result property="userBankname" column="User_BankName" jdbcType="VARCHAR"/>
<result property="userBanknum" column="User_BankNum" jdbcType="VARCHAR"/>
<result property="userFormula" column="User_Formula" jdbcType="VARCHAR"/>
<result property="userMoney" column="User_Money" jdbcType="NUMERIC"/>
<result property="mtId" column="Mt_ID" jdbcType="INTEGER"/>
<result property="userDocnum" column="User_DocNum" jdbcType="VARCHAR"/>
<result property="userPwd" column="User_Pwd" jdbcType="VARCHAR"/>
<result property="userContractnum" column="User_ContractNum" jdbcType="VARCHAR"/>
<result property="userContractdate" column="User_ContractDate" jdbcType="TIMESTAMP"/>
<result property="userVolumeid" column="User_VolumeID" jdbcType="OTHER"/>
<result property="userVolumeorderindex" column="User_VolumeOrderIndex" jdbcType="INTEGER"/>
<result property="userStauts" column="User_stauts" jdbcType="INTEGER"/>
</resultMap>
<!--查询单个-->
<select id="queryById" resultMap="UsUserMap">
select
User_No, User_Name, User_ABC, User_CreateDate, User_Address, User_detailAddress, User_Phone, User_SMSPhone, Area_ID, User_Type, User_PayType, User_BankName, User_BankNum, User_Formula, User_Money, Mt_ID, User_DocNum, User_Pwd, User_ContractNum, User_ContractDate, User_VolumeID, User_VolumeOrderIndex, User_stauts
from tapwater.us_user
where User_No = #{userNo}
</select>
<!--查询指定行数据-->
<select id="queryAllByLimit" resultMap="UsUserMap">
select
User_No, User_Name, User_ABC, User_CreateDate, User_Address, User_detailAddress, User_Phone, User_SMSPhone, Area_ID, User_Type, User_PayType, User_BankName, User_BankNum, User_Formula, User_Money, Mt_ID, User_DocNum, User_Pwd, User_ContractNum, User_ContractDate, User_VolumeID, User_VolumeOrderIndex, User_stauts
from tapwater.us_user
limit #{offset}, #{limit}
</select>
<!--通过实体作为筛选条件查询-->
<select id="queryAll" resultMap="UsUserMap">
select
User_No, User_Name, User_ABC, User_CreateDate, User_Address, User_detailAddress, User_Phone, User_SMSPhone, Area_ID, User_Type, User_PayType, User_BankName, User_BankNum, User_Formula, User_Money, Mt_ID, User_DocNum, User_Pwd, User_ContractNum, User_ContractDate, User_VolumeID, User_VolumeOrderIndex, User_stauts
from tapwater.us_user
<where>
<if test="userNo != null and userNo != ''">
and User_No = #{userNo}
</if>
<if test="userName != null and userName != ''">
and User_Name = #{userName}
</if>
<if test="userAbc != null and userAbc != ''">
and User_ABC = #{userAbc}
</if>
<if test="userCreatedate != null">
and User_CreateDate = #{userCreatedate}
</if>
<if test="userAddress != null and userAddress != ''">
and User_Address = #{userAddress}
</if>
<if test="userDetailaddress != null and userDetailaddress != ''">
and User_detailAddress = #{userDetailaddress}
</if>
<if test="userPhone != null and userPhone != ''">
and User_Phone = #{userPhone}
</if>
<if test="userSmsphone != null and userSmsphone != ''">
and User_SMSPhone = #{userSmsphone}
</if>
<if test="areaId != null">
and Area_ID = #{areaId}
</if>
<if test="userType != null and userType != ''">
and User_Type = #{userType}
</if>
<if test="userPaytype != null and userPaytype != ''">
and User_PayType = #{userPaytype}
</if>
<if test="userBankname != null and userBankname != ''">
and User_BankName = #{userBankname}
</if>
<if test="userBanknum != null and userBanknum != ''">
and User_BankNum = #{userBanknum}
</if>
<if test="userFormula != null and userFormula != ''">
and User_Formula = #{userFormula}
</if>
<if test="userMoney != null">
and User_Money = #{userMoney}
</if>
<if test="mtId != null">
and Mt_ID = #{mtId}
</if>
<if test="userDocnum != null and userDocnum != ''">
and User_DocNum = #{userDocnum}
</if>
<if test="userPwd != null and userPwd != ''">
and User_Pwd = #{userPwd}
</if>
<if test="userContractnum != null and userContractnum != ''">
and User_ContractNum = #{userContractnum}
</if>
<if test="userContractdate != null">
and User_ContractDate = #{userContractdate}
</if>
<if test="userVolumeid != null">
and User_VolumeID = #{userVolumeid}
</if>
<if test="userVolumeorderindex != null">
and User_VolumeOrderIndex = #{userVolumeorderindex}
</if>
<if test="userStauts != null">
and User_stauts = #{userStauts}
</if>
</where>
</select>
<!--新增所有列-->
<insert id="insert" keyProperty="userNo" useGeneratedKeys="true">
insert into tapwater.us_user(User_Name, User_ABC, User_CreateDate, User_Address, User_detailAddress, User_Phone, User_SMSPhone, Area_ID, User_Type, User_PayType, User_BankName, User_BankNum, User_Formula, User_Money, Mt_ID, User_DocNum, User_Pwd, User_ContractNum, User_ContractDate, User_VolumeID, User_VolumeOrderIndex, User_stauts)
values (#{userName}, #{userAbc}, #{userCreatedate}, #{userAddress}, #{userDetailaddress}, #{userPhone}, #{userSmsphone}, #{areaId}, #{userType}, #{userPaytype}, #{userBankname}, #{userBanknum}, #{userFormula}, #{userMoney}, #{mtId}, #{userDocnum}, #{userPwd}, #{userContractnum}, #{userContractdate}, #{userVolumeid}, #{userVolumeorderindex}, #{userStauts})
</insert>
<!--通过主键修改数据-->
<update id="update">
update tapwater.us_user
<set>
<if test="userName != null and userName != ''">
User_Name = #{userName},
</if>
<if test="userAbc != null and userAbc != ''">
User_ABC = #{userAbc},
</if>
<if test="userCreatedate != null">
User_CreateDate = #{userCreatedate},
</if>
<if test="userAddress != null and userAddress != ''">
User_Address = #{userAddress},
</if>
<if test="userDetailaddress != null and userDetailaddress != ''">
User_detailAddress = #{userDetailaddress},
</if>
<if test="userPhone != null and userPhone != ''">
User_Phone = #{userPhone},
</if>
<if test="userSmsphone != null and userSmsphone != ''">
User_SMSPhone = #{userSmsphone},
</if>
<if test="areaId != null">
Area_ID = #{areaId},
</if>
<if test="userType != null and userType != ''">
User_Type = #{userType},
</if>
<if test="userPaytype != null and userPaytype != ''">
User_PayType = #{userPaytype},
</if>
<if test="userBankname != null and userBankname != ''">
User_BankName = #{userBankname},
</if>
<if test="userBanknum != null and userBanknum != ''">
User_BankNum = #{userBanknum},
</if>
<if test="userFormula != null and userFormula != ''">
User_Formula = #{userFormula},
</if>
<if test="userMoney != null">
User_Money = #{userMoney},
</if>
<if test="mtId != null">
Mt_ID = #{mtId},
</if>
<if test="userDocnum != null and userDocnum != ''">
User_DocNum = #{userDocnum},
</if>
<if test="userPwd != null and userPwd != ''">
User_Pwd = #{userPwd},
</if>
<if test="userContractnum != null and userContractnum != ''">
User_ContractNum = #{userContractnum},
</if>
<if test="userContractdate != null">
User_ContractDate = #{userContractdate},
</if>
<if test="userVolumeid != null">
User_VolumeID = #{userVolumeid},
</if>
<if test="userVolumeorderindex != null">
User_VolumeOrderIndex = #{userVolumeorderindex},
</if>
<if test="userStauts != null">
User_stauts = #{userStauts},
</if>
</set>
where User_No = #{userNo}
</update>
<!--通过主键删除-->
<delete id="deleteById">
delete from tapwater.us_user where User_No = #{userNo}
</delete>
</mapper>
二、测试
public class Tests {
public static void main(String[] args) throws Exception {
/**
* 获得SqlSession对象,通过SqlSession操作CRUD
*
*/
SqlSession sqlSession;
//通过Resources类加载核心配置文件,得到文件的输入流
InputStream inputStream = Resources.getResourceAsStream("mybatisConfig.xml");
//创建会话工厂,编译配置文件流,获得sqlsessionfactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(inputStream);
//通过sqlSessionFactory得到sqlsession对象
sqlSession = sqlSessionFactory.openSession();
//1.查询单条数据
Object o = sqlSession.selectOne("XlmUsUserMapper.queryById", "01072609X0");
UsUser usUser = (UsUser) o;
System.out.println(usUser.getUserNo() + " " + usUser.getUserName());
//2.查询指定行数数据
Map<String,Integer> parMap = new HashMap<String,Integer>(10);
parMap.put("offset",1);
parMap.put("limit",3);
List<UsUser> usUserList = sqlSession.selectList("XlmUsUserMapper.queryAllByLimit", parMap);
for (UsUser us:usUserList) {
System.out.println(us.getUserNo());
}
//3.使用接口代理(小编就没写Biz了,直接用的是Dao了)
/**
* 注:
*
* 1.修改实体类的Mapper映射文件中的namespace名字空间,即:
* <mapper namespace="放接口的全路径名">
* 例:<mapper namespace="cn.zking.dao.UsUserDao">
*
* 2.将Mapper映射文件中的CRUD标签id与Interface接口中的CRUD方法名一一对应。
* <select id="放接口中对应的方法名" ……>
* 例:<select id="queryAllByLimit" ……>
*
*/
UsUserDao mapper = sqlSession.getMapper(UsUserDao.class);
List<UsUser> usUserLists = mapper.queryAllByLimit(1, 3);
for (UsUser us : usUserLists) {
System.out.println(us.getUserNo());
}
sqlSession.close();
}
}