初探MyBatis
来源:互联网 发布:安卓锁机软件生成器 编辑:程序博客网 时间:2024/05/30 23:49
先来介绍一下Mybatis的背景:
MyBatis 本是apache的一个开源项目iBatis, 2010年这个项目由apache software foundation 迁移到了google code,并且改名为MyBatis 。2013年11月迁移到Github。iBATIS一词来源于“internet”和“abatis”的组合,是一个基于Java的持久层框架。iBATIS提供的持久层框架包括SQL Maps和Data Access Objects(DAO)(以上语句来自百度)
对于刚初探Mybatis的我来说,它相比于JDBC有很多优点:
1)不用硬性的去修改SQL语句,Mybatis中SQL语句都封装在XML文件中
2)资源得到充分的利用,JDBC在每次操作完成后都要关闭连接,而Mybatis有一个连接池,随时随用
3)能将SQL查询的结果映射成对象
说完这些优点,下面我们就来进行实战吧!
1)新建一个java项目,在项目lib目录下加入以下jar
这是Mybatis的文件目录
首先加入Mybatis的核心jar: mybatis-3.2.1.jar
然后是lib文件的Mybatis的依赖jar包 (文件下所有的jar都要添加)
最后是mysql的驱动包:mysql-connector-java-5.1.7-bin.jar
Mybatis下载地址: http://download.csdn.net/detail/jolingogo/5220163
mysql驱动包下载地址: http://www.pc6.com/softview/SoftView_99415.html
2)建立一个本地数据库,在数据库中新建一个表名为:User
可以使用SQLyog软件(破解版)来打开数据库
CREATE TABLE User(id INT PRIMARY KEY AUTO_INCREMENT, name VARCHAR(20), age INT);
3)在工程中新建一个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>
<!-- 配置数据库运行的环境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<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="XDP" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 注册userMapper.xml文件-->
<mapper resource="com.sp.mybatis.mapper/UserMapper.xml"/>
</mappers>
</configuration>
<!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd">
<configuration>
<!-- 配置数据库运行的环境 -->
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<!-- 配置数据库连接信息 -->
<dataSource type="POOLED">
<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="XDP" />
</dataSource>
</environment>
</environments>
<mappers>
<!-- 注册userMapper.xml文件-->
<mapper resource="com.sp.mybatis.mapper/UserMapper.xml"/>
</mappers>
</configuration>
4)在包com.sp.mybatis.domain下新建一个User类
/**
*
*/
package com.sp.mybatis.domain;
/**
* 类说明
*
* @author saipeng
* @since 2015年10月15日
*/
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
*
*/
package com.sp.mybatis.domain;
/**
* 类说明
*
* @author saipeng
* @since 2015年10月15日
*/
public class User {
private int id;
private String name;
private int age;
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", age=" + age + "]";
}
}
5)在包com.sp.mybatis.mapper下新建一个UserMapper.xml
<?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:命名空间,一般情况下可以随便起一个名字,但要是用mapper
接口动态代理对象的时候要用到mapper的权限定名,格式如:该文件所在的报名+文件名称-->
<mapper namespace="text">
<!--查询用户信息
select:将select标签内容称为statement
id:userMapper中唯一的标示,statement的id
parameterType:指定向SQL中传入参数的类型
resultType:将SQL查询结果映射成java对象的类型
#{}是占位符
-->
<select id="getUserByName" parameterType="String"
resultType="com.sp.mybatis.domain.User">
select * from users where id=#{name}
</select>
</mapper>
<!DOCTYPE mapper PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<!-- namespace:命名空间,一般情况下可以随便起一个名字,但要是用mapper
接口动态代理对象的时候要用到mapper的权限定名,格式如:该文件所在的报名+文件名称-->
<mapper namespace="text">
<!--查询用户信息
select:将select标签内容称为statement
id:userMapper中唯一的标示,statement的id
parameterType:指定向SQL中传入参数的类型
resultType:将SQL查询结果映射成java对象的类型
#{}是占位符
-->
<select id="getUserByName" parameterType="String"
resultType="com.sp.mybatis.domain.User">
select * from users where id=#{name}
</select>
</mapper>
6)在包com.sp.mybatis.mapper下新建一个UserMapper.java
/**
*
*/
package com.sp.mybatis.mapper;
import com.sp.mybatis.domain.User;
/**
* 类说明
* @author saipeng
* @since 2015年10月15日
*/
public interface UserMapper {
/**
*
* 方法说明:方法名称一定要和UserMapper.xml中select的id是一样的
* 参数类型和返回值的类型也得一样
* @author saipeng
* @since 2015年10月15日
* @param name
* @return
* @throws Exception
*/
public User getUserByName(String name) throws Exception;
}
*
*/
package com.sp.mybatis.mapper;
import com.sp.mybatis.domain.User;
/**
* 类说明
* @author saipeng
* @since 2015年10月15日
*/
public interface UserMapper {
/**
*
* 方法说明:方法名称一定要和UserMapper.xml中select的id是一样的
* 参数类型和返回值的类型也得一样
* @author saipeng
* @since 2015年10月15日
* @param name
* @return
* @throws Exception
*/
public User getUserByName(String name) throws Exception;
}
7)编写一个测试类
package me.gacl.test;
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import com.sp.mybatis.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test1 {
public static void main(String[] args) throws IOException {
//mybatis的配置文件
String resource = "conf.xml";
//使用Mybatis提供的Resource类来加载配置文件
InputStream is = Resource.getResourceAsStream(resource);
//拿到sqlSession会话工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的标识字符串,
*text是UserMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "text.getUser";//映射sql的标识字符串
//执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
import java.io.IOException;
import java.io.InputStream;
import java.io.Reader;
import com.sp.mybatis.domain.User;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class Test1 {
public static void main(String[] args) throws IOException {
//mybatis的配置文件
String resource = "conf.xml";
//使用Mybatis提供的Resource类来加载配置文件
InputStream is = Resource.getResourceAsStream(resource);
//拿到sqlSession会话工厂
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(is);
//创建能执行映射文件中sql的sqlSession
SqlSession session = sessionFactory.openSession();
/**
* 映射sql的标识字符串,
*text是UserMapper.xml文件中mapper标签的namespace属性的值,
* getUser是select标签的id属性值,通过select标签的id属性值就可以找到要执行的SQL
*/
String statement = "text.getUser";//映射sql的标识字符串
//执行查询返回一个唯一user对象的sql
User user = session.selectOne(statement, 1);
System.out.println(user);
}
}
到此结束初探Mybatis的任务,第一次写blog,望多多包涵!!!
0 0
- myBatis初探
- 初探MyBatis
- MyBatis初探
- 初探MyBatis
- Mybatis初探
- MyBatis初探
- myBatis初探
- MyBatis 初探
- Mybatis初探
- MyBatis初探
- Mybatis初探
- MyBatis初探
- 初探MyBatis
- Mybatis二级缓存初探
- Mybatis migration使用初探
- MyBatis框架之初探
- JAVA mybatis:初探
- Mybatis学习总结(一).初探Mybatis
- ocp-425
- 人工智能 学习笔记 —— Pre
- 启用IIS7配置ASP运行环境的详细方法
- java 贪吃蛇----z
- android中使用material design的问题-Cannot resolve symbol: @color:material_blue_500
- 初探MyBatis
- ocp-426
- ocp-427
- 函数体里面new的问题
- 微信支付-返回签名错误
- Java编程思想学习笔记
- ocp-428
- Android开发模板------SlidingPaneLayout、Navigation Drawer的基本介绍
- Java CompletionService 理解