mybatis整体流程
2019-08-26 06:25:33来源:博客园 阅读 ()
mybatis整体流程
<?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> <property name="jdbc.driver" value="com.mysql.jdbc.Driver"/> </properties> --> <!-- <properties>:设置或引入资源文件 resource:在类路径下访问资源文件 url:在网络路径或磁盘路径下访问资源文件 --> <properties resource="jdbc.properties"></properties> <settings> <setting name="mapUnderscoreToCamelCase" value="true"/> </settings> <typeAliases> <!-- 为类型设置类型别名 type:Java 类型,若只设置type,默认的别名就是类型,且不区分大小写 --> <!-- <typeAlias type="com.atguigu.bean.User" alias="u"/> 不建议--> <!-- 这种写法在XxxMapper.xml的resultType只需要写个Xxx就可以 --> <package name="com.atguigu.bean"/> </typeAliases> <!-- <environments>:设置连接数据库的环境 default:设置默认使用的数据库环境 --> <environments default="mysql"> <!-- <environment>:设置某个具体的数据库的环境 id:数据库环境的唯一标示 --> <environment id="mysql"> <!-- type="JDBC|MANAGED" --> <transactionManager type="JDBC" /> <!-- type="POOLED|UNPOOLED|JNDI" --> <dataSource type="POOLED"> <property name="driver" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> </dataSource> </environment> <environment id="oracle"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/ssm" /> <property name="username" value="root" /> <property name="password" value="123456" /> </dataSource> </environment> </environments> <!-- 引入映射文件 --> <mappers> <!-- 引入具体的映射文件 --> <mapper resource="UserMapper.xml" /> </mappers> </configuration>
<?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"> <!-- 这个用来指定对应的dao接口 --> <mapper namespace="com.atguigu.mapper.UserMapper"> <!-- <select>:定义查询语句 id:设置SQL语句的唯一标示 resultType:结果类型,即实体类的全限定名 resultType如果在sqlMapConfig.xml中配置过typeAlisas,则按起的别名来,不建议 --> <select id="getUserByUid" resultType="com.atguigu.bean.User"> select uid,username,password,age,sex from user where uid = ${value} </select> </mapper>
package com.atguigu.mapper; import com.atguigu.bean.User; public interface UserMapper { //和UserMapper.xml中的sql的id对应的 /** * <!-- <select>:定义查询语句 id:设置SQL语句的唯一标示 resultType:结果类型,即实体类的全限定名 --> <select id="getUserByUid" resultType="com.atguigu.bean.User"> select uid,username,password,age,sex from user where uid = ${value} 或者#{id} </select> * @param uid * @return */ User getUserByUid(String uid); }
package com.atguigu.mapper; import static org.junit.Assert.*; import java.io.IOException; import java.io.InputStream; import java.util.Properties; 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.atguigu.bean.User; public class TestMybatis { @Test public void test() throws IOException { InputStream is = Resources.getResourceAsStream("mybatis-config.xml");//org.apache.ibatis.io.Resources //InputStream is = TestMybatis.class.getClassLoader().getResourceAsStream("mybatis-config.xml"); SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(is); SqlSession sqlSession = sqlSessionFactory.openSession(); //getMapper():会通过动态代理动态生成UserMapper的代理实现类 UserMapper mapper = sqlSession.getMapper(UserMapper.class); System.out.println(mapper.getClass().getName());//com.sun.proxy.$Proxy4这个为生成的代理对象 User user = mapper.getUserByUid("1"); System.out.println(user); //user_name ---> userName } }
原文链接:https://www.cnblogs.com/zmy-520131499/p/11397680.html
如有疑问请与原作者联系
标签:
版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点,本站所提供的摄影照片,插画,设计作品,如需使用,请与原作者联系,版权归原作者所有
上一篇:被辞退员工的一天
下一篇:关于静态变量和非静态变量的区别
- MyBatis中的$和#,用不好,准备走人! 2020-06-11
- Java学习之第二天 2020-06-11
- SpringBoot 2.3 整合最新版 ShardingJdbc + Druid + MyBatis 2020-06-11
- 天哪!手动编写mybatis雏形竟然这么简单 2020-06-06
- 架构设计 | 异步处理流程,多种实现模式详解 2020-06-04
IDC资讯: 主机资讯 注册资讯 托管资讯 vps资讯 网站建设
网站运营: 建站经验 策划盈利 搜索优化 网站推广 免费资源
网络编程: Asp.Net编程 Asp编程 Php编程 Xml编程 Access Mssql Mysql 其它
服务器技术: Web服务器 Ftp服务器 Mail服务器 Dns服务器 安全防护
软件技巧: 其它软件 Word Excel Powerpoint Ghost Vista QQ空间 QQ FlashGet 迅雷
网页制作: FrontPages Dreamweaver Javascript css photoshop fireworks Flash