mybatis模板

因为这里是说mybatis的,所以呢 servlet就不做多说了,代码也不在这里贴出来了.
log4j.properties
log4j.rootLogger=DEBUG,Console
log4j.appender.Console=org.apache.log4j.ConsoleAppender
log4j.appender.Console.layout=org.apache.log4j.PatternLayout
log4j.appender.Console.layout.ConversionPattern=%d [%t] %-5p [%c] - %m%n
log4j.logger.org.apache=INFO
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>之后且<typeAliases>之前 -->
<settings>
<setting name="logImpl" value="LOG4J" />
</settings>
<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://127.0.0.1:3306/micro_message" />
<property name="username" value="root" />
<property name="password" value="gys" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/imooc/config/sqlxml/message.xml" />
</mappers>
</configuration>
message.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">
<mapper namespace="message">
<resultMap type="com.imooc.bean.Message" id="MessageResult">
<id column="id" jdbcType="INTEGER" property="id" />
<result column="COMMAND" jdbcType="VARCHAR" property="command" />
<result column="DESCRIPTION" jdbcType="VARCHAR" property="description" />
<result column="CONTENT" jdbcType="VARCHAR" property="content" />
</resultMap> <select id="queryMessageList" parameterType="com.imooc.bean.Message" resultMap="MessageResult">
select ID,COMMAND,DESCRIPTION,CONTENT from message
<where>
<!--以下条件 test="command != null && "".equals(command.trim()) " -->
<!-- <if test="command !=null && !"".equals(command.trim())">
and COMMAND =#{command}
</if> -->
<if test="command != null and !"".equals(command.trim())">
and command=#{command}
</if>
<if test="description != null and !"".equals(description.trim())">
and description like '%' #{description} '%'
</if>
</where>
</select>
<!-- 单个删除 ,这种情况 参数用_parameter -->
<delete id="deleteOne" parameterType="int">
delete from message where ID=#{_parameter}
</delete> <!-- 批量删除 -->
<delete id="deleteBatch" parameterType="java.util.List">
delete from message where ID in (
<foreach collection="list" item="item" separator=",">
#{item}
</foreach>
)
</delete> <!-- 这里的keyProperty对应的是类中的属性,不是数据库中的字段,插入数据返回id主键值 -->
<insert id="insertData" parameterType="com.imooc.bean.Message" useGeneratedKeys="true" keyProperty="id">
insert into message
(COMMAND,DESCRIPTION,CONTENT)
values
(#{command},#{description},#{content})
</insert> <select id="getDataByCommand" parameterType="String" resultMap="MessageResult" resultType="com.imooc.bean.Message">
select ID,COMMAND,DESCRIPTION,CONTENT from message where COMMAND=#{_parameter} limit 1
</select> </mapper>
DBAccess.java
package com.imooc.db; import java.io.IOException;
import java.io.Reader; import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder; /**
* 访问数据库
* @author gys
*
*/
public class DBAccess {
public SqlSession getSqlSession() throws IOException{
//通过配置文件获取数据库连接信息
Reader reader= Resources.getResourceAsReader("com/imooc/config/mybatis-config.xml");
//通过配置信息构建一个SqlSessionFactory
SqlSessionFactory sqlSessionFactory=new SqlSessionFactoryBuilder().build(reader);
//通过sqlSessionFactory打开一个数据库回话
SqlSession sqlSession=sqlSessionFactory.openSession();
return sqlSession;
}
}
MessageDao.java
package com.imooc.dao; import java.io.IOException;
import java.util.ArrayList;
import java.util.List; import org.apache.ibatis.session.SqlSession; import com.imooc.bean.Message;
import com.imooc.db.DBAccess; /**
* 和message表相关的数据库操作
* @author gys
*
*/
public class MessageDao {
public List<Message> queryMessageList(String command,String description){
List<Message> messageList=new ArrayList<Message>();
DBAccess dbAccess=new DBAccess();
SqlSession sqlSession=null;
try {
sqlSession= dbAccess.getSqlSession();
Message message=new Message();
message.setCommand(command);
message.setDescription(description); //通过sqlSession执行sql语句
messageList=sqlSession.selectList("message.queryMessageList",message);
} catch (IOException e) {
e.printStackTrace();
}finally{
if(sqlSession !=null){
sqlSession.close();
}
}
return messageList;
}
/**
* 单条删除
* @param id
*/
public void deleteOne(int id){
DBAccess dbAccess=new DBAccess();
SqlSession sqlSession=null;
try {
sqlSession= dbAccess.getSqlSession();
//通过sqlSession执行sql语句
int count=sqlSession.delete("message.deleteOne",id);
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(sqlSession !=null){
sqlSession.close();
}
}
} /**
* 批量删除
*/
public void deleteBatch(List<Integer> ids){
DBAccess dbAccess=new DBAccess();
SqlSession sqlSession=null;
try {
sqlSession= dbAccess.getSqlSession();
//通过sqlSession执行sql语句
int count=sqlSession.delete("message.deleteBatch",ids);
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(sqlSession !=null){
sqlSession.close();
}
}
} /**
* 插入数据,获取主键
*/
public int insertData(Message message){
DBAccess dbAccess=new DBAccess();
SqlSession sqlSession=null;
int id=0;
try {
sqlSession= dbAccess.getSqlSession();
//通过sqlSession执行sql语句
int count=sqlSession.insert("message.insertData",message);//返回受影响的行数
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(sqlSession !=null){
sqlSession.close();
}
}
id=message.getId();
return id;//返回插入数据的id
} /**
* 获取单个数据
*/
public Message getDataByCommand(String command){
DBAccess dbAccess=new DBAccess();
SqlSession sqlSession=null;
Message message=null;
try {
sqlSession= dbAccess.getSqlSession();
//通过sqlSession执行sql语句
message=sqlSession.selectOne("message.getDataByCommand",command);//返回受影响的行数
sqlSession.commit();
} catch (IOException e) {
e.printStackTrace();
}finally{
if(sqlSession !=null){
sqlSession.close();
}
}
return message;//返回插入数据的id
} }
MessageService.java
package com.imooc.service; import java.util.ArrayList;
import java.util.List; import com.imooc.bean.Message;
import com.imooc.dao.MessageDao; public class MessageService {
public List<Message> queryMessageList(String command,String description){
MessageDao messageDao=new MessageDao();
return messageDao.queryMessageList(command, description);
} //单条删除
public void deleteOne(String id){
if(id!=null && !"".equals(id.trim())){
MessageDao messageDao=new MessageDao();
messageDao.deleteOne(Integer.valueOf(id));
}
} /**
* 批量删除
*/
public void deleteBatch(String[] ids){
MessageDao messageDao=new MessageDao();
List<Integer> list=new ArrayList<Integer>();
if(ids==null){
System.out.println("请选择删除的项目!");
}else{
for(String id:ids){
list.add(Integer.valueOf(id));
}
messageDao.deleteBatch(list);
} }
/**
* 批量删除
*/
public int insertData(Message message){
MessageDao messageDao=new MessageDao();
int id=messageDao.insertData(message);
return id;
} /**
* 获取单个数据
*/
public Message getDataByCommand(String command){
MessageDao messageDao=new MessageDao();
return messageDao.getDataByCommand(command);
} }
这些就是mybatis最基础的模板代码.供以后查找用
mybatis模板的更多相关文章
- MyBatis 模板
mybatis-config.xml: <?xml version="1.0" encoding="utf-8"?> <!DOCTYPE co ...
- Spring mybatis源码篇章-MybatisDAO文件解析(一)
前言:通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-SqlSessionFactory 加载指定的mybatis主文件 Mybatis模板文件,其中的属性 ...
- springboot mybatis 多数据源配置
首先导入mybatis等包,这里就不多说. 下面是配置多数据源和mybatis,每个数据源对应一套mybatis模板 数据源1: package com.aaaaaaa.config.datasour ...
- SpringBoot+SpringCloud+vue+Element开发项目——集成MyBatis框架
添加mybatis-spring-boot-starter依赖 pox.xml <!--mybatis--> <dependency> <groupId>org.m ...
- Spring mybatis源码篇章-Mybatis主文件加载
通过阅读源码对实现机制进行了解有利于陶冶情操,承接前文Spring mybatis源码篇章-SqlSessionFactory 前话 本文承接前文的内容继续往下扩展,通过Spring与Mybatis的 ...
- Mybatis总结一之Mybatis项目的创建
一.mybatis概念 Mybatis是对象和表之间映射关系的持久层框架. 二.Mybatis的导入与创建 第一步,创建web项目,引入mybatis依赖的jar包----mybatis-3.4.6. ...
- Thymeleaf+SpringBoot+Mybatis实现的齐贤易游网旅游信息管理系统
项目简介 项目来源于:https://github.com/liuyongfei-1998/root 本系统是基于Thymeleaf+SpringBoot+Mybatis.是非常标准的SSM三大框架( ...
- spring boot集成mybatis框架
概述 中文官网:http://www.mybatis.cn 参考教程:https://www.w3cschool.cn/mybatis MyBatis Plus:http://mp.baomidou. ...
- Spring从认识到细化了解
目录 Spring的介绍 基本运行环境搭建 IoC 介绍: 示例使用: 使用说明: 使用注意: Bean的实例化方式 Bean的作用范围的配置: 补充: DI: 属性注入: 补充: IoC的注解方式: ...
随机推荐
- wikioi 1076 排序 【这里含冒泡、选择、插入以及快排库函数的调用】
/*=================================================================== 1076 排序 题目描述 Description 给出n和n ...
- 关于ExpandableListView用法的一个简单小例子
喜欢显示好友QQ那样的列表,可以展开,可以收起,在android中,以往用的比较多的是listview,虽然可以实现列表的展示,但在某些情况下,我们还是希望用到可以分组并实现收缩的列表,那就要用到an ...
- bootstrap3-typeahead 自动补全
很酷的一个自动补全插件 http://twitter.github.io/typeahead.js 在bootstrap中使用typeahead插件,完成自动补全 相关的文档:https://gith ...
- C#接口作用的深入理解
1.C#接口的作用 C#接口是一个让很多初学C#者容易迷糊的东西,用起来好像很简单,定义接口,里面包含方法,但没有方法具体实现的代码,然后在继承该接口的类里面要实现接口的所有方法的代码,但没有真正认识 ...
- HBase(七): HBase体系结构剖析(下)
目录: write Compaction splite read Write: 当客户端发起一个Put请求时,首先根据RowKey寻址,从hbase:meta表中查出该Put数据最终需要去的HRegi ...
- 如何利用gatling创建一个性能测试例
[原创博文,转载请声明出处] 基于上一篇博文介绍如何源码编译创建自己的gatling可执行工具,今天介绍一下如何基于gatling做性能测试! 由于gatling的测试例脚本是基于scala写的,所以 ...
- 解决每次打开office 2010显示正在配置的问题
解决每次打开office 2010显示正在配置的问题 OFFICE 2010 MSDN版出来后,下载安装 ,启动后发现每次打开都会出现“正在配置”的进度,删除重装亦不成功,对SETUP.EXE改名也不 ...
- JST(JavaScript Trimpath)前端模板引擎简介
JST(JavaScript Trimpath)前端模板引擎简介及应用 今天在做某系统日志列表的时候用到了这个玩意儿.刚开始只是根据别人的例子照葫芦画瓢完成了日志列表及对应详情,晚上有空了才仔细去网上 ...
- Nexus手动更新索引
如果有耐心的话,完全可以通过在线更新索引的方式来做,但所消耗的时间较长,下面介绍一种简单.可行的方式来手动更新索引文件. 访问http://repo.maven.apache.org/maven2/. ...
- jquery form表单序列号
1.serialize()方法 格式:var data = $("form").serialize(); 功能:将表单内容序列化成一个字符串. 这样在ajax提交表单数据时,就不用 ...