JavaWeb_(Mybatis框架)主配置文件介绍_四
系列博文:
JavaWeb_(Mybatis框架)JDBC操作数据库和Mybatis框架操作数据库区别_一
JavaWeb_(Mybatis框架)使用Mybatis对表进行增、删、改、查操作_二
JavaWeb_(Mybatis框架)Mapper动态代理开发_三
JavaWeb_(Mybatis框架)主配置文件介绍_四
JavaWeb_(Mybatis框架)输入和输出参数_五
JavaWeb_(Mybatis框架)关联查询_六传送门
JavaWeb_(Mybatis框架)动态sql_七传送门
MyBatis 主配置文件SqlMapConfig.xml说明:(注意顺序) 官方博客:传送门
1、properties(读取配置文件)
2、settings(全局配置参数)
3、typeAliases(类型别名)
4、typeHandlers(类型处理器)
5、objectFactory(对象工厂)
6、plugins(插件)
7、environments(环境集合属性对象,与Spring框架整合后Say Good Bye)
a)environment(环境子属性对象)
b)transactionManager(事务管理)
c)dataSource(数据源)
8、mappers(配置映射器位置)
1、使用properties读取db.properties配置文件
db.properties配置文件
jdbc.driver=com.mysql.jdbc.Driver jdbc.url=jdbc:mysql://localhost:3306/ssm_mybatis jdbc.username=root jdbc.password=123456
sqlMapConfig.xml中使用properties读取配置文件
<properties resource="db.properties"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}">property> <property name="url" value="${jdbc.url}">property> <property name="username" value="${jdbc.username}">property> <property name="password" value="${jdbc.password}">property> dataSource>
jdbc.driver=com.mysql.jdbc.Driver
jdbc.url=jdbc:mysql://localhost:3306/ssm_mybatis
jdbc.username=root
jdbc.password=123456
db.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"/> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}">property> <property name="url" value="${jdbc.url}">property> <property name="username" value="${jdbc.username}">property> <property name="password" value="${jdbc.password}">property> dataSource> environment> environments> <mappers> <mapper resource="mapper/UserMapper.xml"/> mappers> configuration>sqlMapConfig.xml
2、sqlMapConfig-typeAliases别名配置
配置别名有两种方式,一种是单独给bean对象配置别名,另一种是直接给包配置别名
<typeAliases> <typeAlias type="com.Gary.bean.User" alias="user"/> <package name="com.Gary.bean"/> typeAliases>
单独给bean对象配置别名
在sqlMapConfig.xml文件下配置com.Gary.bean.User类型的typeAliases别名
<typeAliases> <typeAlias type="com.Gary.bean.User" alias="user"/> typeAliases>
UserMapper下的查询一个用户返回就可以直接返回他的user
<select id="selectUserById" parameterType="Integer" resultType="user"> select * from user where u_id = #{id} select>
<?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"/> <typeAliases> <typeAlias type="com.Gary.bean.User" alias="user"/> typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}">property> <property name="url" value="${jdbc.url}">property> <property name="username" value="${jdbc.username}">property> <property name="password" value="${jdbc.password}">property> dataSource> environment> environments> <mappers> <mapper resource="mapper/UserMapper.xml"/> mappers> configuration>sqlMapConfig.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.Gary.mapper.UserMapper"> <select id="selectUserById" parameterType="Integer" resultType="user"> select * from user where u_id = #{id} select> <select id="selectUserByName" parameterType="String" resultType="com.Gary.bean.User"> select * from user where u_username like "%"#{name}"%" select> <insert id="insertUser" parameterType="com.Gary.bean.User"> insert into user values(null,#{u_username},#{u_password},#{u_sex},#{u_createTime},#{u_cid}) insert> <update id="updateUser" parameterType="com.Gary.bean.User"> update user set u_username = #{u_username} where u_id = #{u_id} update> <delete id="deleteUserById" parameterType="Integer"> delete from user where u_id = #{id} delete> mapper>UserMapper.xml
package com.Gary.test; import java.io.IOException; import java.io.InputStream; 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.Test; import com.Gary.bean.User; import com.Gary.mapper.UserMapper; public class MapperTest { @Test public void Test1() throws IOException { //读取配置文件 String resource = "sqlMapConfig.xml"; InputStream in = Resources.getResourceAsStream(resource); //创建sqlSessionFactory SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in); //生产一个sqlSession SqlSession session = ssf.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUserById(1); System.out.println(user); } }MapperTest.java
给整个包配置别名(别名为类名,不区别大小写,推荐使用这种方式配置别名)
<?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"/> <typeAliases> <package name="com.Gary.bean"/> typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}">property> <property name="url" value="${jdbc.url}">property> <property name="username" value="${jdbc.username}">property> <property name="password" value="${jdbc.password}">property> dataSource> environment> environments> <mappers> <mapper resource="mapper/UserMapper.xml"/> mappers> configuration>sqlMapConfig.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.Gary.mapper.UserMapper"> <select id="selectUserById" parameterType="Integer" resultType="user"> select * from user where u_id = #{id} select> <select id="selectUserByName" parameterType="String" resultType="com.Gary.bean.User"> select * from user where u_username like "%"#{name}"%" select> <insert id="insertUser" parameterType="com.Gary.bean.User"> insert into user values(null,#{u_username},#{u_password},#{u_sex},#{u_createTime},#{u_cid}) insert> <update id="updateUser" parameterType="com.Gary.bean.User"> update user set u_username = #{u_username} where u_id = #{u_id} update> <delete id="deleteUserById" parameterType="Integer"> delete from user where u_id = #{id} delete> mapper>UserMapper.xml
package com.Gary.test; import java.io.IOException; import java.io.InputStream; 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.Test; import com.Gary.bean.User; import com.Gary.mapper.UserMapper; public class MapperTest { @Test public void Test1() throws IOException { //读取配置文件 String resource = "sqlMapConfig.xml"; InputStream in = Resources.getResourceAsStream(resource); //创建sqlSessionFactory SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(in); //生产一个sqlSession SqlSession session = ssf.openSession(); UserMapper mapper = session.getMapper(UserMapper.class); User user = mapper.selectUserById(1); System.out.println(user); } }MapperTest.java
3、sqlMapConfig-mapper映射器位置 官方文档:传送门
<mappers> <mapper resource="mapper/UserMapper.xml"/> <mapper url="file:\\\F:\SSH\pro\ssm_mybatis\src\mapper"> <mapper class="com.Gary.mapper.UserMapper"/> <package name="com.Gary.mapper"/> mappers>
<?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"/> <typeAliases> <package name="com.Gary.bean"/> typeAliases> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"/> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}">property> <property name="url" value="${jdbc.url}">property> <property name="username" value="${jdbc.username}">property> <property name="password" value="${jdbc.password}">property> dataSource> environment> environments> <mappers> <mapper resource="mapper/UserMapper.xml"/> <mapper url="file:\\\F:\SSH\pro\ssm_mybatis\src\mapper"> <mapper class="com.Gary.mapper.UserMapper"/> <package name="com.Gary.mapper"/> mappers> configuration>sqlMapConfig.xml