MyBatis-HelloWord
首先需要创建一个快捷Maven项目,并添加MyBatis依赖
1 <dependency> 2 <groupId>org.mybatis</groupId> 3 <artifactId>mybatis</artifactId> 4 <version>3.5.1</version> 5 </dependency> 6 <dependency> 7 <groupId>mysql</groupId> 8 <artifactId>mysql-connector-java</artifactId> 9 <version>5.1.6</version> 10 </dependency>
在 resources 文件夹中创建配置文件(SqlMapConfig.xml 这里为 Config.xml)
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-config.dtd"> 4 <configuration> 5 <!-- 配置数据源相关属性和事务 --> 6 <environments default="development"> 7 <!-- 可以配置多个数据源环境,默认使用default中的值 --> 8 <environment id="development"> 9 <!-- 使用jdbc的事务管理 --> 10 <transactionManager type="JDBC" /> 11 <!-- 配置数据源,并使用自带数据库连接池 --> 12 <dataSource type="POOLED"> 13 <property name="driver" value="com.mysql.jdbc.Driver" /> 14 <property name="url" 15 value="jdbc:mysql://localhost:3306/mysqldb?characterEncoding=utf-8" /> 16 <property name="username" value="root" /> 17 <property name="password" value="root" /> 18 </dataSource> 19 </environment> 20 </environments> 21 <!-- 配置映射文件,可配置多个 --> 22 <mappers> 23 <mapper resource="com/neusoft/po/Emp.xml" /> 24 </mappers> 25 </configuration>
关于xml文件创建
下载链接:
1 http://mybatis.org/dtd/mybatis-3-config.dtd 2 http://mybatis.org/dtd/mybatis-3-mapper.dtd
1 <!-- 使用log4j输出更多的日志信息 --> 2 <dependency> 3 <groupId>log4j</groupId> 4 <artifactId>log4j</artifactId> 5 <version>1.2.17</version> 6 </dependency>
- 在resources文件夹中添加log4j配置文件(log4j.properties)
### direct log messages to stdout ### log4j.appender.stdout=org.apache.log4j.ConsoleAppender log4j.appender.stdout.Target=System.out log4j.appender.stdout.layout=org.apache.log4j.PatternLayout log4j.appender.stdout.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n ### direct messages to file mylog.log ### ### log4j.appender.file=org.apache.log4j.FileAppender ### log4j.appender.file.File=d:mylog.log ### log4j.appender.file.layout=org.apache.log4j.PatternLayout ### log4j.appender.file.layout.ConversionPattern=%d{yyyy-MM-dd HH:mm:ss} %m%n ### set log levels - for more verbose logging change 'debug?info?warn?error' ### ### log4j.rootLogger=debug,stdout,file log4j.rootLogger=debug,stdout
创建po类
创建 Emp.java类
在 po 类所在包下(在 resources 文件夹中),创建相同名称的映射文件:Emp.xml
1 <?xml version="1.0" encoding="UTF-8"?> 2 <!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" 3 "http://mybatis.org/dtd/mybatis-3-mapper.dtd"> 4 <mapper namespace="emp"> 5 <select id="getEmpById" parameterType="int" resultType="com.neusoft.po.Emp"> 6 select * from emp where empno = #{empno} 7 </select> 8 </mapper>
注意: mapper标签:映射文件的根标签。 mapper标签namespace属性:命名空间,对sql进行分类管理,可防止id重复
select标签:表示查询。 select标签id属性:此属性要唯一。这个id可称为statement的id。 select标签parameterType属性:sql参数的类型。 select标签resultType属性:sql语句执行后返回的类型。
sql语句:
{}: 表示sql参数,一个占位符。
当parameterType属性为对象类型时:#{} 中的参数名为对象的属性名。 当parameterType属性为单个值时,参数名可以任意。
从映射文件中可以看到:MyBatis会根据字段名与实体对象中的属性名进行映射,从而实现自动将查询数据注入到实体对象的每一个属性中。这就是输出映射。
测试
package com.neusoft.MyBatis00; import java.io.IOException; import java.io.InputStream; 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 com.neusoft.MyBatis00.dao.DeptDao; import com.neusoft.MyBatis00.dao.EmpDao; import com.neusoft.MyBatis00.po.Dept; import com.neusoft.MyBatis00.po.Emp; public class Test { public static void main(String[] args) { try { InputStream is = Resources.getResourceAsStream("Config.xml"); SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); SqlSession ss = ssf.openSession(); DeptDao dd = ss.getMapper(DeptDao.class); Dept d = dd.getDeptBydeptno(10); System.out.println(d); EmpDao ed = ss.getMapper(EmpDao.class); List<Emp> elist = ed.getEmpListBydeptno(20); System.out.println(elist); ss.close(); } catch (IOException e) { // TODO Auto-generated catch block e.printStackTrace(); } finally { // 关闭数据库会话 } } }
<!-- 使用log4j输出更多的日志信息 --> <dependency> <groupId>log4j</groupId> <artifactId>log4j</artifactId> <version>1.2.17</version> </dependency>
本文来自博客园,作者:喵酱爱吃鱼,转载请注明原文链接:https://www.cnblogs.com/zhangyuanmingboke/p/15342234.html