mybatis(3)--第一个mybatis的demo
来源:互联网 发布:全国dna数据库 编辑:程序博客网 时间:2024/06/06 02:47
首先就是搭建环境啦!!!
https://github.com/mybatis/mybatis-3/releases
从这个链接下载mybatis的开发包下载下来
其中mybatis-3.4.4.jar就是其核心包
lib下的包就是相关的日志包,还有代理cglib包,common包等
再加一个log.properties
#开发环境下设置成debug,生产环境设置成info或者errorlog4j.rootLogger=DEBUG,A1log4j.logger.org.mybatis = DEBUGlog4j.appender.A1=org.apache.log4j.ConsoleAppenderlog4j.appender.A1.layout=org.apache.log4j.PatternLayoutlog4j.appender.A1.layout.ConversionPattern=%-d{yyyy-MM-dd HH:mm:ss,SSS} [%t] [%c]-[%p] %m%n
接下来就是配置文件啦!
SqlMapConfig.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> <!-- 环境变量的配置,但是在和spring整合之后就没用啦 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> </transactionManager> <dataSource type="POOLED"> <property name="driver" value="com.mysql.jdbc.Driver" /> <property name="url" value="jdbc:mysql://localhost:3306/mybatis?characterEncoding=utf-8" /> <property name="username" value="root" /> <property name="password" value="1234" /> </dataSource> </environment> </environments> <!-- 加载映射文件 --> <mappers> <mapper resource="sqlmap/UserMapper.xml"/> </mappers></configuration>
创建pojo:
package com.ddd.mybatis.pojo;import java.util.Date;/** * 用户类pojo * @author Dan * */public class User { //和数据库表的user的字段对应 private int id; private String username; private String sex; private Date birthday; private String address; public int getId() { return id; } public void setId(int id) { this.id = id; } public String getUsername() { return username; } public void setUsername(String username) { this.username = username; } public String getSex() { return sex; } public void setSex(String sex) { this.sex = sex; } public Date getBirthday() { return birthday; } public void setBirthday(Date birthday) { this.birthday = birthday; } public String getAddress() { return address; } public void setAddress(String address) { this.address = address; } @Override public String toString() { return "User [id=" + id + ", username=" + username + ", sex=" + sex + ", birthday=" + birthday + ", address=" + address + "]"; }}
然后写映射文件:
<?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进行分类化管理,理解sql隔离 使用mapper代理的方法开发namespace有很重要的作用 --><mapper namespace="test" > <!-- 在映射文件中配置很多sql语句 --> <!-- 通过select执行查询 id:用来表示文件中的sql,将sql语句封装到mappedstatement对象中,所以id其实是statement的id parameterType:指定输入参数类型,id是int型 #{}表示一个占位符 #{id}表示id是接受的输入参数,名字是id,如果输入参数是简单类型,#{}中的参数名可以任意,可以是value或者其他名称 resultType: --> <!-- 通过id查询用户 --> <select id="findUserById" parameterType="int" resultType="com.ddd.mybatis.pojo.User"> SELECT * FROM USER WHERE id=#{id} </select></mapper>
写完记得将其加入到sqlMapConfig中去
写完之后来测试吧!
package com.ddd.mybatis.first;import java.io.IOException;import java.io.InputStream;import java.io.Reader;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.ddd.mybatis.pojo.User;/** * 测试mybatisdemo * @author Dan * */public class MybatisFirst { //根据id查询用户信息得到一条结果记录 @Test public void findUserByIdTest() throws IOException{ //加载mybatis文件 String fileSource="SqlMapConfig.xml"; //获取文件流 InputStream inputStream=Resources.getResourceAsStream(fileSource); //根据加载的配置文件信息创建SqlSessionFactory SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(inputStream); //得到sqlsession SqlSession sqlSession=sqlSessionFactory.openSession(); //sqlSession操作数据库 //第一个参数:映射文件中的statement的id:也就是namespace+"."+statement的id //第二个参数:指定和映射文件中所匹配的parameterType类型的参数 //接受参数就是resultType中指定的对象类型 User u=sqlSession.selectOne("test.findUserById", 1); System.out.println(u); sqlSession.close(); }}
运行结果:
2017-07-16 16:50:41,356 [main] [org.apache.ibatis.logging.LogFactory]-[DEBUG] Logging initialized using 'class org.apache.ibatis.logging.slf4j.Slf4jImpl' adapter.2017-07-16 16:50:41,621 [main] [org.apache.ibatis.datasource.pooled.PooledDataSource]-[DEBUG] PooledDataSource forcefully closed/removed all connections.2017-07-16 16:50:41,622 [main] [org.apache.ibatis.datasource.pooled.PooledDataSource]-[DEBUG] PooledDataSource forcefully closed/removed all connections.2017-07-16 16:50:41,622 [main] [org.apache.ibatis.datasource.pooled.PooledDataSource]-[DEBUG] PooledDataSource forcefully closed/removed all connections.2017-07-16 16:50:41,622 [main] [org.apache.ibatis.datasource.pooled.PooledDataSource]-[DEBUG] PooledDataSource forcefully closed/removed all connections.2017-07-16 16:50:41,763 [main] [org.apache.ibatis.transaction.jdbc.JdbcTransaction]-[DEBUG] Opening JDBC Connection2017-07-16 16:50:42,061 [main] [org.apache.ibatis.datasource.pooled.PooledDataSource]-[DEBUG] Created connection 998865748.2017-07-16 16:50:42,061 [main] [org.apache.ibatis.transaction.jdbc.JdbcTransaction]-[DEBUG] Setting autocommit to false on JDBC Connection [com.mysql.jdbc.JDBC4Connection@3b897b54]2017-07-16 16:50:42,065 [main] [test.findUserById]-[DEBUG] ==> Preparing: SELECT * FROM USER WHERE id=? 2017-07-16 16:50:42,143 [main] [test.findUserById]-[DEBUG] ==> Parameters: 1(Integer)2017-07-16 16:50:42,195 [main] [test.findUserById]-[DEBUG] <== Total: 1User [id=1, username=小明, sex=男, birthday=Fri Sep 09 00:00:00 CST 2011, address=北京市海淀区]2017-07-16 16:50:42,198 [main] [org.apache.ibatis.transaction.jdbc.JdbcTransaction]-[DEBUG] Resetting autocommit to true on JDBC Connection [com.mysql.jdbc.JDBC4Connection@3b897b54]2017-07-16 16:50:42,199 [main] [org.apache.ibatis.transaction.jdbc.JdbcTransaction]-[DEBUG] Closing JDBC Connection [com.mysql.jdbc.JDBC4Connection@3b897b54]2017-07-16 16:50:42,199 [main] [org.apache.ibatis.datasource.pooled.PooledDataSource]-[DEBUG] Returned connection 998865748 to pool.
第一个小程序完成,基本的mybatis运行原理差不多就是这样!开心!
阅读全文
0 0
- mybatis(3)--第一个mybatis的demo
- Mybatis 第一个Demo
- MyBatis学习笔记(一)IntelliJ IDEA的第一个MyBatis Demo
- 使用IntelliJ IDEA的第一个MyBatis Demo
- mybatis的第一个程序
- mybatis的第一个程序
- 我的第一个Mybatis!
- 第一个mybatis例子
- mybatis第一个helloworld
- 第一个MyBatis程序
- mybatis第一个问题
- 第一个Mybatis
- 简单mybatis环境搭建 我的第一个mybatis工程
- MyBatis的第一个HelloWorld小例子(不用接口)
- mybatis创建第一个实例的笔记(1)
- 我的第一个mybatis代码
- 第一个mybatis程序(mybatis入门)
- mybatis新手教程-第一个mybatis实例
- FZU—2150 Fire Game
- 安联支付-专业的第三方支付
- 各个版本的快速排序源码
- spring的事务配置
- Kali Linux SQL注入攻击教程
- mybatis(3)--第一个mybatis的demo
- 泛型
- Handler,Loop,Message,MessageQueue,ThreadLocal关系详解
- [二分][杂题] Codeforces Round #424 .A Office Keys
- Android4.4新特性
- 跟我一起学C语言(第九天)
- Material Design之可折叠标题栏
- 常用linux命令netstat
- linux 系统命令的学习笔记总结