一、pom.xml文件配置
<dependencies>
...
<!-- 添加mysql驱动依赖 -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.5.1</version>
</dependency>
</dependencies>
<build>
...
<!--防止打包之后不能识别resources中的xml文件-->
<resources>
<resource>
<directory>src/main/java</directory>
<includes>
<include>**/*.xml</include>
</includes>
</resource>
</resources>
</build>
二、resources包配置mysql.properties文件
driver=com.mysql.cj.jdbc.Driver
#在和mysql传递数据的过程中,使用unicode编码格式,并且字符集设置为utf-8
url=jdbc:mysql:///smbms?useUnicode=true&charcaterEncoding=utf-8&useSSL=false&serverTimezone=UTC
user=root
password=123
三、mybatis-config.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">
<!--通过这个配置文件完成mybatis与数据库的连接-->
<configuration>
<!--引入mysql.properties文件-->
<properties resource="mysql.properties"/>
<!-- <properties>-->
<!-- <property name="driver" value="com.mysql.cj.jdbc.Driver"/>-->
<!-- <property name="url" value="jdbc:mysql:///smbms?useUnicode=true&charcaterEncoding=utf-8&serverTimezone=UTC"/>-->
<!-- <property name="user" value="root"/>-->
<!-- <property name="password" value="123"/>-->
<!-- </properties>-->
<!--配置mybatis的log实现为LOG4J-->
<settings>
<setting name="logImpl" value="LOG4J"/>
<!--关闭延迟加载-->
<setting name="lazyLoadingEnabled" value="false"/>
<!--禁止自动匹配,默认自动匹配,但是实体属性名和数据库字段名一致,resultType无效-->
<setting name="autoMappingBehavior" value="NONE"/>
</settings>
<!--指定别名-->
<typeAliases>
<package name="cn.gwj.entity" />
<!--<typeAlias type="cn.gwj.entity.User" alias="User"/>-->
<package name="cn.gwj.dao" />
</typeAliases>
<!--配置数据库连接-->
<environments default="mysql">
<environment id="mysql">
<!--配置事务管理,采用JDBC事务管理-->
<transactionManager type="JDBC"></transactionManager>
<!--POOLED:mybatis自带的数据源,JNDI:基于Tomcat的数据源-->
<dataSource type="POOLED">
<property name="driver" value="${driver}"/>
<property name="url" value="${url}"/>
<property name="username" value="${user}"/>
<property name="password" value="${password}"/>
</dataSource>
</environment>
</environments>
<!--将mapper文件加入到配置文件中-->
<mappers>
<mapper resource="cn/gwj/dao/UserDao.xml"></mapper>
</mappers>
</configuration>
四、在数据访问层dao创建mapper 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">
<!--cn.cxh.dao.UserDao 接口-->
<mapper namespace="cn.gwj.dao.UserDao">
<!--结果集映射-->
<resultMap id="userMap" type="User">
<!--property是查询的实体类属性,column相当于数据库查询的结果集名称-->
<!--id为主键-->
<id property="id" column="id"/>
<result property="userCode" column="userCode"/>
<result property="userName" column="userName"/>
<result property="userPassword" column="userPassword"/>
<!--一对一关系,内部映射-->
<!--javaType对应的实体类-->
<!--<association property="role" javaType="Role">-->
<!--<id property="id" column="userRole"/>-->
<!--<result property="roleCode" column="roleCode"/>-->
<!--<result property="roleName" column="roleName"/>-->
<!--</association>-->
<!--外部映射-->
<association property="role" resultMap="roleMap"/>
</resultMap>
<resultMap id="roleMap" type="Role">
<id property="id" column="userRole"/>
<result property="roleCode" column="roleCode"/>
<result property="roleName" column="roleName"/>
</resultMap>
<select id="getLoginUser" parameterType="String" resultMap="userMap">
select * from smbms_user where userCode=#{userCode}
</select>
<!--id指定的是方法名称,resultType是返回的数据类型-->
<select id="count" resultType="int">
select count(1) from smbms_user
</select>
<!--<select id="selectAll" resultType="cn.gwj.entity.User">-->
<!--select * from smbms_user-->
<!--</select>-->
<select id="selectAll" resultType="User">
select * from smbms_user
</select>
<select id="selectUserByName" resultMap="userMap" parameterType="String">
select * from smbms_user where userName like concat('%',#{name},'%')
</select>
<select id="getUserList" resultMap="userMap">
select u.*,r.roleCode,r.roleName from smbms_user u
left join smbms_role r on u.userRole=r.id
where userName=#{userName} or userRole=#{userRole}
limit #{currentPageNo},#{PageSize}
</select>
<select id="add" parameterType="User">
insert into smbms_user(userCode,userName,userPassword) values(#{userCode},#{userName},#{userPassward})
</select>
<select id="modify" parameterType="User">
update smbms_user set userCode=#{userCode},userName=#{userName},userPassword=#{userPassword}
</select>
<!--接口方法多个参数,在接口方法传参时使用@param("参数名称") 注解值的类型-->
<select id="updatePwd">
update smbms_user set userPassword=#{pwd}
where id=#{id}
</select>
<select id="deleteUserById" parameterType="int">
delete from smbms_user where id=#{id}
</select>
</mapper>