MyBatis实例
来源:互联网 发布:2017年全球数据总量 编辑:程序博客网 时间:2024/06/05 16:36
上篇博客中我讲解了如何配置MyBatis的开发环境,这里我就直接拿一个例子来说明如何在实际的开发中使用MyBatis。
项目目录结构
在MyEclipse中新建一个Java web项目,并导入MyBatis的jar包,同时在src目录下新建一些包,以区分不同的功能,目录结构如下图所示。
我们来一一讲解一下这些文件的具体内容以及功能。
(1)log4j.properties
该文件的内容如下所示:
log4j.rootLogger = DEBUG, stdoutlog4j.logger.org.mybatis = DEBUGlog4j.appender.stdout = org.apache.log4j.ConsoleAppenderlog4j.appender.stdout.layout = org.apache.log4j.PatternLayoutlog4j.appender.stdout.layout.ConversionPattern =%5p %d %C\: %m%n这个主要是为了记录程序运行过程中的配置信息,使用的日志框架是log4j,所以你要在工程中导入log4j的jar包。这个配置的效果要等到整个项目运行起来的时候才能观察到。如下所示:
我们可以看到,它记录了一些非常重要的执行过程,比如SQL语句和一些中间结果。
(2)jdbc.properties
该文件主要是一些数据源的配置信息,它可以在mybatis-config.xml中进行加载,从而引用其中的一些变量,比如数据库驱动、URL、数据库用户名、密码等。
driver = com.mysql.jdbc.Driverurl = jdbc:mysql://localhost:3306/mybatis_test?characterEncoding=UTF-8username = rootpassword =
(3)com.cao.util
这个包下就定义了一个类:SqlSessionFactoryUtil,它的作用主要是以单例模式创建SqlSessionFactory,同时返回SqlSession,代码如下:
package com.cao.util;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;public class SqlSessionFactoryUtil {private static SqlSessionFactory sqlSessionFactory = null;private static final Class CLASS_LOCK = SqlSessionFactoryUtil.class;/* * 私有化构造函数 */private SqlSessionFactoryUtil(){}/* * 构建SqlSessionFactory */public static SqlSessionFactory initSqlSessionFactory(){String resource = "mybatis-config.xml";InputStream is = null;try{is = Resources.getResourceAsStream(resource);}catch(IOException e){e.printStackTrace();}synchronized(CLASS_LOCK){if(sqlSessionFactory == null){sqlSessionFactory = new SqlSessionFactoryBuilder().build(is);}}return sqlSessionFactory;}public static SqlSession openSqlSession(){if(sqlSessionFactory == null){initSqlSessionFactory();}return sqlSessionFactory.openSession();}}
(4)com.cao.pojo
这个包下也就只有一个类:Role,其实它就是一个Java bean。
package com.cao.pojo;public class Role {private Long id;private String roleName;private String note;public Long getId() {return id;}public void setId(Long id) {this.id = id;}public String getRoleName() {return roleName;}public void setRoleName(String roleName) {this.roleName = roleName;}public String getNote() {return note;}public void setNote(String note) {this.note = note;}}
(5)com.cao.mapper
这个包下面有两个文件,充当了映射器的作用,当然也可以不要RoleMapper接口,好像说MyBatis在版本几之前来着都是没有这个接口映射文件的。
<?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"> <mapper namespace="com.cao.mapper.RoleMapper"><select id="getRole" parameterType="long" resultType="Role">select id, role_name as roleName, note from role where id = #{id}</select><insert id="insertRole" parameterType="Role">insert into role(role_name,note) values(#{roleName},#{note})</insert><delete id="deleteRole" parameterType="long">delete from role where id = #{id}</delete></mapper>
package com.cao.mapper;import com.cao.pojo.Role;public interface RoleMapper {public Role getRole(Long id);public int insertRole(Role role);public int deleteRole(Long id);}
(6)com.cao.main
当然,这里面就是测试的主函数入口了。
package com.cao.main;import org.apache.ibatis.session.SqlSession;import com.cao.mapper.RoleMapper;import com.cao.pojo.Role;import com.cao.util.SqlSessionFactoryUtil;public class RoleMain {public static void main(String[] args) {SqlSession sqlSession = null;try{sqlSession = SqlSessionFactoryUtil.openSqlSession();RoleMapper roleMapper = sqlSession.getMapper(RoleMapper.class);Role role = new Role();role.setRoleName("zhangxiang");role.setNote("this is zhangxiang");roleMapper.insertRole(role);roleMapper.deleteRole(2L);sqlSession.commit();}catch(Exception e){System.out.println(e.getMessage());sqlSession.rollback();}finally{if(sqlSession != null){sqlSession.close();}}}}
完整代码请在这里下载http://download.csdn.net/detail/chyang1999/9880976
阅读全文
0 0
- Mybatis实例
- MyBatis实例
- mybatis实例
- 【Mybatis】实例
- Mybatis实例
- Mybatis+servlet实例(Mybatis学习)
- MyBatis经典入门实例
- MyBatis经典入门实例
- ibatis(mybatis)简单实例
- MyBatis之实例简介
- MyBatis 的 resultMap实例
- MyBatis经典入门实例
- mybatis代码生成实例
- mybatis入门实例
- mybatis入门实例
- MyBatis入门实例简介
- MyBatis 简单实例
- MyBatis入门实例
- Web 项目更改项目名
- Opencv学习笔记--图像处理的基本操作
- Unity3d同步读取APK包中的AssetBundle测试
- 【BJOI 2014】大融合
- (17/06/25)STM32学习->GPIO输出控制LED
- MyBatis实例
- C++学习:模板编程(泛型)
- material_designer风格介绍
- 扩展FrontierScheduler来抓取特定的内容
- offset_of宏和contianer_of宏的功能
- OpenCV学习笔记--颜色空间及转换
- Redis 与集合(Set)相关的命令
- Linux虚拟机搭建大数据集群
- 如何使用git命令提交项目到github并创建不同的版本控制