一、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">
<configuration>
<!-- environments:指 mybatis可以配置多个环境;default:指向默认的环境。
每个SqlSessionFactory对应一个环境environment。
-->
<environments default="development">
<environment id="development">
<!-- 在MyBatis中有两种事务管理器类型(也就是type="[JDBC|MANAGED]"):
JDBC – 这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。
MANAGED – 这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命
周期(比如Spring或JEE应用服务器的上下文)。
-->
<transactionManager type="JDBC" />
<!-- 有三种内建的数据源类型(也就是type="???"):
UNPOOLED – 这个数据源的实现是每次被请求时简单打开和关闭连接。
POOLED – 这是JDBC连接对象的数据源连接池的实现,用来避免创建新的连接实例时必要的初始连接和认证时间。
这是一种当前Web应用程序用来快速响应请求很流行的方法。
JNDI – 这个数据源的实现是为了使用如Spring或应用服务器这类的容器,容器可以集中或在外部配置数据源,
然后放置一个JNDI上下文的引用。
-->
<dataSource type="POOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://localhost:3306/test" />
<property name="username" value="root" />
<property name="password" value="123456" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 定义映射SQL语句的文件 -->
<mapper resource="com/liujie/model/user.mapper.xml" />
</mappers>
</configuration>
二、mapper文件
<?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">
<!-- namespace:命名空间,防止sql语句的id重名。
namespace命名:包名+类名 / 包名+mapper文件名。
parameterType:指sql语句参数类型。
resultType:返回结果类型。
useGeneratedKeys="true":使用自增主键。
-->
<mapper namespace="com.liujie.model.UserMapper">
<!-- 查询单个用户
id在该文件中唯一
-->
<select id="selectUser" resultType="com.liujie.model.User">
select * from user where id = #{id}
</select>
<!-- 查询所有用户 -->
<select id="selectAll" resultType="com.liujie.model.User">
select * from user
</select>
<!-- 添加用户 -->
<insert id="addUser" parameterType="com.liujie.model.User" useGeneratedKeys="true">
insert into user(name, pwd) values(#{name}, #{pwd})
</insert>
<!-- 更新用户信息 -->
<update id="updateUser" parameterType="com.liujie.model.User">
update user set name=#{name}, pwd=#{pwd} where id=#{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUser">
delete from user where id=#{id}
</delete>
</mapper>
三、执行流程
读取核心配置文件 ---> 创建SqlSessionFactory ---> 获得SqlSession --->(执行相关操作) |
四、优化配置文件
导入properties配置文件
- 在
下加入db.properties配置文件
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/test
username=root
password=123456
- 在mybatis-config.xml中添加properties标签
<?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>
<properties resource="db.properties"></properties>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 定义映射SQL语句的文件 -->
<mapper resource="com/liujie/model/user.mapper.xml" />
</mappers>
</configuration>
五、别名的优化
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">
<configuration>
<properties resource="db.properties"></properties>
<typeAliases>
<!-- 为指定类型指定别名,使得在mapper映射文件中可以简化引用
<typeAlias type="com.liujie.model.User" alias="User"/>
-->
<!-- 为某个包下的所有类指定别名,默认别名是对应的类名 -->
<package name="com.liujie.model"/>
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 定义映射SQL语句的文件 -->
<mapper resource="com/liujie/model/user.mapper.xml" />
</mappers>
</configuration>
|
user.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">
<mapper namespace="com.liujie.model.UserMapper">
<!-- 查询单个用户 -->
<select id="selectUser" resultType="User">
select * from user where id = #{id}
</select>
<!-- 查询所有用户 -->
<select id="selectAll" resultType="User">
select * from user
</select>
<!-- 添加用户 -->
<insert id="addUser" parameterType="User" useGeneratedKeys="true">
insert into user(name, pwd) values(#{name}, #{pwd})
</insert>
<!-- 更新用户信息 -->
<update id="updateUser" parameterType="User">
update user set name=#{name}, pwd=#{pwd} where id=#{id}
</update>
<!-- 删除用户 -->
<delete id="deleteUser">
delete from user where id=#{id}
</delete>
</mapper>
|