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的注解方式: ...
随机推荐
- CentOS6.4系统启动失败故障排查
转:http://www.centoscn.com/CentosBug/osbug/2014/1028/4011.html 操作系统启动失败如下图报错: 故障现象: 从图中可以看到,操作系统启动的过程 ...
- TKinter之输入框
输入框是 Entry,应用程序要取得用户的信息,输入框是必不可少的. 输入框比较重要的一个函数: get:返回值即输入框的内容 比如e是一个输入框,e['show']='*'就变成了密码框 小例子:用 ...
- 必须Mark!43个优秀的Swift开源项目推荐
摘要:拥有着苹果先天生态优势的Swift自发布以来,各种优秀的开源项目便层出不穷.本文作者站在个人的角度,将2014年Swift开源项目做了一个甄别.筛选,从工具.存储.网络.界面.框架到Demo以及 ...
- ABP系列文章总目录:
转自:http://www.cnblogs.com/mienreal/p/4528470.html 1.ABP总体介绍 2.ASP.NET Boilerplate入门 3.ABP分层架构 4.ABP模 ...
- 14款经典的MySQL客户端软件
1. EMS MySQL Manager 强大的mysql管理工具,允许用户通过图形界面创建或编辑数据库对象,并提供通过sql语句管理用户和权限,通过图形界面建立sql语句,自动生成html格式的数据 ...
- Linux下nice/renice命令小结
1. nice命令 内核根据进程的nice值决定进程需要多少处理器时间. nice值的取值范围是是: -20到20. 一个具有-20 的 nice 值的进程有很高的优先级. 一个 nice 值为 20 ...
- MongoDB小型文档型数据库使用
MongoDB是一个基于分布式文件存储的数据库.由C++语言编写.旨在为WEB应用提供可扩展的高性能数据存储解决方案. MongoDB 是一个介于关系数据库和非关系数据库之间的产品,是非关系数据库当中 ...
- C基础--函数指针的使用
之前在看代码的时候,看了函数指针的使用,大体分为如下几类: 做一个function list,通过指针索引调用,使得处理功能类似的函数看起来更加清晰: 函数指针作为另一个函数的参数,用作回调: lin ...
- 删除SQL server 实例
在网上找到下面几种方法,本人使用的是第一种,很实用. 1.删除 SQL Server 的特定实例若要删除 SQL Server 的某个特定实例,请按照以下步骤操作: 找到并删除%drive%:\\Pr ...
- zookeeper进行leader选举
一.如何进行leader选举 创建 /lj/producer和/lj/master/producer外层节点 创建临时顺序节点 判断自己是否是master节点(判断流程:遍历/lj/producer节 ...