博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
mybaits 学习笔记(搭建)一
阅读量:5326 次
发布时间:2019-06-14

本文共 3625 字,大约阅读时间需要 12 分钟。

1、导入mybaits jar包

  手动导入mybaits github 下载地址 https://github.com/mybatis/mybatis-3/releases

  maven导入依赖

<!-- https://mvnrepository.com/artifact/org.mybatis/mybatis -->

<dependency>
<groupId>org.mybatis</groupId>
<artifactId>mybatis</artifactId>
<version>3.4.5</version>
</dependency>

2、主配置文件

在github上下载源码包,并在\src\test\java\org\apache\ibatis\submitted\complex_property下拷贝Configuration.xml作为配置样板。

配置数据库链接

<dataSource type="UNPOOLED">

<property name="driver" value="com.mysql.jdbc.Driver"/>
<property name="url" value="jdbc:mysql://127.0.0.1:3306/db_name"/>
<property name="username" value="root"/>
<property name="password" value="root"/>
</dataSource>

3、获取SqlSession

SqlSession作用 1、向sql语句传入参数。 2、执行sql语句。 3、获取执行sql语句的结果。 4、事务的控制。

如何得到SqlSession:

  1. 通过主配置文件获取数据库连接相关信息。
  2. 通过配置信息构建SqlSessionFactory。
  3. 通过SqlSessionFactory打开数据库会话。

4、构建数据库访问类

  public class DBAcess {

public SqlSession getSqlSession() throws IOException{

//通过配置文件读取数据库链接信息
Reader reader = Resources.getResourceAsReader("config/Configuration.xml"); //配置文件路径为相对于代码根目录的路径
//通过配置文件构建一个SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder().build(reader);
//通过SqlSessionFactory打开一个数据库会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}

}

 

5、mabaits操作xml配置

  在github上下载源码包,并在\src\test\java\org\apache\ibatis\submitted\complex_property下拷贝User.xml作为配置样板。

  在mapper下配置相应的sql操作如: 

<select id="queryUserList"   resultMap="UserResult">

  SELECT id,username,password  FROM user WHERE 1 = 1
</select>

根据需要配置相应的resultMap返回数据 如:   

<resultMap type="bean.User" id="UserResult">

<id column="id" jdbcType="INTEGER" property="id"/>
<result column="username" jdbcType="VARCHAR" property="username"/>
<result column="password" jdbcType="VARCHAR" property="password.encrypted"/>
</resultMap> 

 

6、将mabaits操作xml配置添加到主配置文件中

<mappers>

<mapper resource="oconfig/User.xml"/>
</mappers>

DAO层调用  例:sqlSession.selectList("User.queryUserList");//User对应<mapper namespace="User"> 

 

7、传递参数到SQL   结合OGNL

 

Mybaits中的OGNL
取值范围  标签中的属性
     取值写法  String与基本数据类型 _parameter 
 自定义类型  属性名(username)
   集合  数组:array
 List:list
 Map:_parameter
  操作符  java常用操作符  +,-,*,/,==,!=,||,&&等
 自己特有的操作符  and,or,mod,in,not in

 

Mybaits中的OGNL
从集合中取出一条数据 数组 array[索引](String[])
array[索引]。属性名(User[])
List list[索引](List<String>)
list[索引].属性名(List<User>)
Map _parameter.key(Map<String,String>)
key.属性名(Map<String,User>)
利用foreach标签从集合中取出数据 <foreach collection="array" index="i" item="item">
数组 i:索引(下标)

item

item.属性名

List
Map i:key

 

    

    

<select id="queryUserList" parameterType="bean.User" resultMap="UserResult">

<!-- SELECT * FROM user WHERE id = #{id:INTEGER} -->
select id,username,password from user where 1=1
<if test="username!= null and !&quot;&quot;.equals(username.trim())">and username=#{username}</if>
<if test="password!= null and !&quot;&quot;.equals(password.trim())">and password =#{description}</if>
</select>

 

     例:

    User user = new User(); 

    user.setUsername("...");

    DAO层调用  例:sqlSession.selectList("User.queryUserList",user);

    

8、log4j配置

  maven资源:

<!-- https://mvnrepository.com/artifact/log4j/log4j -->

<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>

手动可到mybatis-3.4.5\lib下获取

 

        在mybaits源码包下mybatis-3-mybatis-3.4.5\src\test\java下拷贝log4j.properties至java源码根目录下

  修改日志级别为debug可查看mybatis调试日志

  

log4j.rootLogger=DEBUG, stdout

#log4j.logger.org.apache.ibatis=ERROR

log4j.appender.stdout=org.apache.log4j.ConsoleAppender

log4j.appender.stdout.layout=org.apache.log4j.PatternLayout
log4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
log4j.logger.org.apache=INFO

  

转载于:https://www.cnblogs.com/wwwx/p/8027268.html

你可能感兴趣的文章
华为十年
查看>>
android中关于的dpi,dp,dip的定义及转换
查看>>
thread msg
查看>>
【重点突破】——第三方绘图工具FusionCharts.js的使用详解
查看>>
C#中的反射
查看>>
NHibernate - ICriteria 查询[转 十年如一]
查看>>
linux 2.4.16 内核 strcmp详解
查看>>
python 全栈开发,Day67(Django简介)
查看>>
ML_入门
查看>>
vuex 的基本使用
查看>>
通过Python实现mysql查询数据库实例
查看>>
Python图形编程探索系列-09-tkinter与matplotlib结合案例
查看>>
Analysis of Web.xml in Hello1 project
查看>>
cloc 统计代码行数工具
查看>>
Scala学习——基础篇
查看>>
16.迭代器模式(Iterator Pattern)
查看>>
数据结构实验之链表六:有序链表的建立(SDUT 2121)
查看>>
pl sql 查询显示乱码解决方法——设置环境变量NLS_LANG
查看>>
彻底取消Myeclipse对js文件的校验
查看>>
vs调试程序缺少 msvcp140d.dll 解决方法
查看>>