Mybatis的配置和使用
来源:互联网 发布:莎莎官网app网络慢 编辑:程序博客网 时间:2024/05/19 18:40
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> <!-- 外部属性文件导入,属性文件中通常配置数据库的连接信息 --> <properties resource="com/etc/config/conf.properties"></properties> <!-- 给每一实体类定义一个别名 :建议别名和类名相同--> <typeAliases> <!-- 单个实体类的定义,建议别名和类名相同 <typeAlias alias="Grade" type="com.etc.entity.Grade"/> --> <!-- 自动为实体类创建一个别名,创建的命名规则是:别名于类名相同 --> <package name="com.etc.entity"/> </typeAliases> <!--配置environment环境(一般情况下有三个),开发换技能,测试环境,运行环境--> <environments default="development"> <!-- 开发环境配置,每个SqlSessionFactory对应一个环境 --> <environment id="development"> <!-- 事务配置 type= JDBC、MANAGED 1.JDBC:这个配置直接简单使用了JDBC的提交和回滚设置。它依赖于从数据源得到的连接来管理事务范围。 2.MANAGED:这个配置几乎没做什么。它从来不提交或回滚一个连接。而它会让容器来管理事务的整个生命周期 (比如Spring或JEE应用服务器的上下文)。 默认情况下它会关闭连接。然而一些容器并不希望这样,因此如果你需要从连接中停止它,将closeConnection属性设置为false --> <transactionManager type="JDBC" /> <!-- 数据源 类型POOLED:表示使用连接池 UNPOOLED表示不使用连接池 NDI在容器中配置连接池 --> <dataSource type="POOLED"> <!-- config.conf.properties属性中取连接数据库的信息 --> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> <!-- 测试环境配置 --> <environment id="test"> <transactionManager type="JDBC" /> <!-- 数据源 类型POOLED:表示使用连接池 UNPOOLED表示不使用连接池 NDI在容器中配置连接池 --> <dataSource type="POOLED"> <!-- config.conf.properties属性中取连接数据库的信息 --> <property name="driver" value="${driver}" /> <property name="url" value="${url}" /> <property name="username" value="${username}" /> <property name="password" value="${password}" /> </dataSource> </environment> </environments> <!-- 映射文件,mapper的配置文件(数据访问接口的配置文件):注意接口名称要与配置文件名称一样 --> <mappers><!--扫描包路径下所有Mapper.xml文件--><package name="com.etc.dao"/> </mappers> </configuration>
conf.properties的设置如下:
driver=com.mysql.jdbc.Driver
url=jdbc\:mysql\://localhost\:3306/myelipes?characterEncoding\=utf-8
username=root
password=123123
GradeBao代码如下:
public interface GradeBao {
public List<Grade> find();
public Grade findId(int id);
}
GradeBizImpl.java代码如下:
package com.etc.biz.impl;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import com.etc.biz.GradeBiz;
import com.etc.dao.GradeBao;
import com.etc.entity.Grade;
import com.etc.util.SqlSessionFactoryUtil;
public class GradeBizImpl implements GradeBiz{
@Override
public List<Grade> find() {
//创建对象
SqlSession sqlSession = null;
List<Grade> list = null;
try {
//调用工厂获取接口
sqlSession = SqlSessionFactoryUtil.getSqlSession();
//通过sqlSession对象获取数据访问接口,采用反射机制
GradeBao dao = sqlSession.getMapper(GradeBao.class);
//调用数据访问接口的方法 ,会自动查询映射文件中的对应得指令,返回结果集
list = dao.find();
} catch (Exception e) {
System.out.println(e.getMessage());
}finally{
sqlSession.close();
}
return list;
}
@Override
public Grade findId(int id) {
// TODO Auto-generated method stub
return null;
}
}
GradeBao.xml如下:
<?xml version="1.0" encoding="UTF-8" ?><!DOCTYPE mapperPUBLIC "-//mybatis.org//DTD Mapper 3.0//EN" "http://mybatis.org/dtd/mybatis-3-mapper.dtd"><!-- 根据节点,namespace:表示配置文件映射的数据接扣类 --><mapper namespace="com.etc.dao.GradeBao"><!-- 定义返回解过集type:表示返回的类型别名 id:表示结果集返回的名称 --><resultMap type="Grade" id="gradeMap"><!-- id:表示主键 property:实体类的属性名 column:表示数据库表中的字段名 --><id property="id" column="id"/><!-- result表示一般属性 property:实体类的属性名 column:表示数据库表中的字段名 --><result property="gradeName" column="gradeName"/></resultMap><!-- 这个select节点表示执行查询,调用接口方法则根据方法名来找节点id值,resultMap:表示查询返回的结果封装在哪个结果集中--><select id="find" resultMap="gradeMap">select * from grade</select></mapper>
SqlSessionFactoryUtil.java:代码如下
import java.io.IOException;
import java.io.InputStream;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
//辅助类创建SqlSession对象
public class SqlSessionFactoryUtil {
//创建SqlSessionFactory对象
static SqlSessionFactory factory = null;
//创建文件流
static InputStream is = null;
//静态代码块读取主配置文件,获取返回文件流。
static {
try {
is = Resources.getResourceAsStream("com/etc/config/mybatis-config.xml");
} catch (IOException e) {
e.printStackTrace();
}
}
//采用单例模式保证工程的唯一性
public static SqlSessionFactory getSqlSessionFactory(){
//懒汉式
if(factory == null){
//创建sqlsession工厂
factory = new SqlSessionFactoryBuilder().build(is);
}
return factory;
}
//获取Sqlsession对象
public static SqlSession getSqlSession(){
return getSqlSessionFactory().openSession();
}
}
test.java代码如下:
package com.etc;
import java.util.List;
import com.etc.biz.GradeBiz;
import com.etc.biz.impl.GradeBizImpl;
import com.etc.entity.Grade;
public class test {
public static void main(String[] args) {
GradeBiz biz = new GradeBizImpl();
List<Grade> list = biz.find();
for (Grade grade : list) {
System.out.println(grade);
}
}
}
- Mybatis 的配置和使用
- MyBatis的配置和使用
- Mybatis的配置和使用
- Mybatis的配置和使用
- myBatis配置和使用
- Mybatis的基本配置和使用
- mybatis-Mybatis Generator工具的使用和配置
- 【mybatis】基本配置和使用
- myBatis简单配置和使用
- Maven下的Mybatis基本配置和使用
- Mybatis用法详解(配置和注解的使用)
- Mybatis - # 和 $ 的使用
- Spring+SpringMVC+Mybatis简单配置和使用
- MyBatis缓存理解和配置使用
- Spring和Mybatis 配置与使用
- 记录SpringBoot使用Druid和Mybatis配置
- Spring中使用MyBatis的简单配置
- mybatis的基本使用及配置
- git代理设置
- linux下SDL安装步骤
- 一个余数问题的思考
- HAUTOJ奇数最大子段和
- Android 中数据存储模块 实现商品展示
- Mybatis的配置和使用
- freeBSD 装载u盘、cd问题
- MobileNets 论文笔记
- caffe学习笔记----4-matlab接口总结
- STL综合案例
- 下辈子千万不要做程序员,少很多失眠
- 148. Sort List 链表排序(C++)
- 利用互联网找工作简单么
- 常用的依赖包