Mybatis入门程序
来源:互联网 发布:淘宝名字能改吗 编辑:程序博客网 时间:2024/05/21 00:15
前言
最近项目中用到了Mybatis,之前没有研究过,所以抽出空闲时间,看看小张哥买的新书,顺便做做里边的例子,今天的博客就是书中第一章的例子,算是Mybatis最简单的入门Demo,有兴趣的可以看看
一、首先建立maven的项目,并配置好pom文件
<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd"> <modelVersion>4.0.0</modelVersion> <groupId>tk.mybatis</groupId> <artifactId>simple</artifactId> <version>0.0.1-SNAPSHOT</version> <properties> <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding> </properties> <dependencies> <dependency> <groupId>junit</groupId> <artifactId>junit</artifactId> <version>4.12</version> <scope>test</scope> </dependency> <dependency> <groupId>org.mybatis</groupId> <artifactId>mybatis</artifactId> <version>3.3.0</version> </dependency> <dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId> <version>5.1.38</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-api</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>org.slf4j</groupId> <artifactId>slf4j-log4j12</artifactId> <version>1.7.12</version> </dependency> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency> </dependencies> <build> <plugins> <plugin> <artifactId>maven-compiler-plugin</artifactId> <configuration> <source>1.6</source> <target>1.6</target> </configuration> </plugin> </plugins> </build></project>
二、配置MyBatis
在src/main/resources路径下创建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> <settings> <!-- 指定使用LOG4J输出日志 --> <setting name="logImpl" value="LOG4J"/> </settings> <!-- 包的别名,通常确定一个类的时候需要使用类的全限定名称 例如:tk.mybatis.simple.model.Country。 在这里配置了tk.mybatis.simple.model包,直接使用Country即可 --> <typeAliases> <package name="tk.mybatis.simple.model"/> </typeAliases> <!-- 配置数据库连接 --> <environments default="development"> <environment id="development"> <transactionManager type="JDBC"> <property name="" value=""/> </transactionManager> <dataSource type="UNPOOLED"> <property name="driver" value="com.mysql.jdbc.Driver"/> <property name="url" value="jdbc:mysql://localhost:3306/mybatis"/> <property name="username" value="root"/> <property name="password" value="root"/> </dataSource> </environment> </environments> <!--SQL语句和映射配置文件 --> <mappers> <mapper resource="tk/mybatis/simple/mapper/CountryMapper.xml"/> </mappers> </configuration>
三、创建实体类和Mapper.xml文件
Mybatis是一个结果映射框架,这里创建的实体类实际上是一个数据值对象。在实际应用中,一个表就会对应一个实体,用于INSERT、UPDATE、DELETE、SELECT操作
package tk.mybatis.simple.model;public class Country { private Long id; private String countryname; private String countrycode; public Long getId() { return id; } public void setId(Long id) { this.id = id; } public String getCountryname() { return countryname; } public void setCountryname(String countryname) { this.countryname = countryname; } public String getCountrycode() { return countrycode; } public void setCountrycode(String countrycode) { this.countrycode = countrycode; }}
mapper映射文件:
package tk.mybatis.simple.model;public class Country { private Long idLong; private String countryname; private String countrycode; public Long getIdLong() { return idLong; } public void setIdLong(Long idLong) { this.idLong = idLong; } public String getCountryname() { return countryname; } public void setCountryname(String countryname) { this.countryname = countryname; } public String getCountrycode() { return countrycode; } public void setCountrycode(String countrycode) { this.countrycode = countrycode; }}
四、log4j的配置文件
#\u5168\u5C40\u914D\u7F6Elog4j.rootLogger=ERROR, stdout#MyBatis \u65E5\u5FD7\u914D\u7F6Elog4j.logger.tk.mybatis.simple.mapper=TRACE#\u63A7\u5236\u53F0\u8F93\u51FA\u914D\u7F6Elog4j.appender.stdout=org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout=org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern=%5p [%t] - %m%n
完整的目录结构
下边我们来写测试代码:
package tk.mybatis.simple.mapper;import java.io.IOException;import java.io.Reader;import java.util.List;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.BeforeClass;import org.junit.Test;import tk.mybatis.simple.model.Country;public class CountryMapperTest { private static SqlSessionFactory sqlSessionFactory; @BeforeClass public static void init(){ try { //通过Resources工具类将配置文件读入Reader Reader reader=Resources.getResourceAsReader("mybatis-config.xml"); //通过sqlSessionFactoryBuilder使用Reader创建sqlSessionFactory工厂对象 //创建的过程: // 1.首先解析mybatis-config.xml配置文件,读取配置文件中的mappers配置后 // 会读取全部的Mapper.xml进行具体方法的解析,解析完成后,SqlSessionFactory就 // 包含了所有的属性配置和执行sql的信息 sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader); reader.close(); } catch (IOException ignore) { // TODO: handle exception ignore.printStackTrace(); } } @Test public void testSelectAll() { //使用SqlSessionFactory对象获取一个SqlSession SqlSession sqlSession=sqlSessionFactory.openSession(); try { //1. 通过SqlSession的selectlist方法查找到CountryMapper.xml中的id="selectAll"的方法 // 执行sql查询 //2. MyBatis底层使用JDBC执行SQL,获得查询结果集ResultSet后,根据resultType的配置 // 将结果映射为Country类型的集合,返回结果 List<Country> countryList=sqlSession.selectList("selectAll"); printCountryList(countryList); } finally{ //不要忘记关闭sqlSession sqlSession.close(); } } private void printCountryList(List<Country> countryList) { for(Country country : countryList){ System.out.printf("%-4d%4s%4s\n",country.getId(), country.getCountryname(), country.getCountrycode()); } }}
输出的结果:
后记
这一个例子参考自刘增辉老师的《MyBatis从入门到精通》,有兴趣可以下载源码参考:
http://mybatis.tk/book/simple-start.zip
阅读全文
0 0
- 【Mybatis进阶】--mybatis 入门程序
- mybatis入门程序
- Mybatis入门程序
- Mybatis入门程序
- mybatis入门程序
- Mybatis实战-入门程序
- mybatis--入门程序
- MyBatis (二) 入门程序
- Mybatis入门程序一
- mybatis的入门程序
- mybatis入门程序
- MyBatis 入门程序
- MyBatis入门小程序
- Mybatis入门程序
- Mybatis入门程序
- mybatis入门HelloWorld程序
- 【Mybatis】入门程序
- mybatis入门程序
- Java中的注意事项
- C语言(26)蛇形填数2
- c++定时器SetTimer
- CentOS 7中安装指定的Kernel版本
- vue用法总结
- Mybatis入门程序
- BZOJ 2160: 拉拉队排练
- [kuangbin带你飞]专题四 最短路练习 A-E
- 如何在git创建仓库并上传更新
- MySQL SQL mode
- 【复习笔记】手写生产者消费者 & 死锁
- 智慧班车功能清单
- java 静态内部类总结
- CentOS 6.8 安装RabbitMQ提示ERROR: epmd error for host "77": badarg (unknown POSIX error)