一、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>
|