MyBatis CRUD Java POJO操作
<?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>
<!-- <settings> <setting name="useGeneratedKeys" value="false"/> <setting
name="useColumnLabel" value="true"/> </settings> <typeAliases> <typeAlias
alias="UserAlias" type="org.apache.ibatis.submitted.complex_property.User"/>
</typeAliases> --> <environments default="development">
<environment id="development">
<transactionManager type="JDBC">
<property name="" value="" />
</transactionManager>
<dataSource type="UNPOOLED">
<property name="driver" value="com.mysql.jdbc.Driver" />
<property name="url" value="jdbc:mysql://127.0.0.1:3306/test" />
<property name="username" value="root" />
<property name="password" value="mysql" />
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="com/stone/config/sqlxml/Person.xml" />
<mapper class="com.stone.dao.IPersonMapper"/>
</mappers>
</configuration>
<?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="Person"> <resultMap type="com.stone.bean.Person" id="PersonResult">
<!-- jdbcType就是java.sql.Types.后面的名称 -->
<id column="ID" jdbcType="INTEGER" property="id" />
<result column="NAME" jdbcType="VARCHAR" property="name" />
<result column="BIRTHDAY" jdbcType="TIMESTAMP" property="birthday" />
</resultMap> <select id="queryPersonList" resultMap="PersonResult">
SELECT ID,NAME,BIRTHDAY
FROM person
</select>
<select id="queryPerson2" resultType="com.stone.bean.Person">
SELECT ID,NAME,BIRTHDAY
FROM person
</select> <insert id="insertPerson" parameterType="com.stone.bean.Person">
insert into
person(name,birthday) values(#{name},#{birthday});
</insert> <delete id="delPerson" parameterType="int">
delete from person where
id=#{id}
</delete> <select id="selPerson" parameterType="int" resultType="com.stone.bean.Person">
select id,name,birthday from person where id=#{id}
</select> <update id="updatePerson" parameterType="com.stone.bean.Person">
update person set
name=#{name},birthday = #{birthday} where id=#{id}
</update>
<select id="version" parameterType="long" resultType="int">
SELECT
version FROM user WHERE id = #{id,jdbcType=INTEGER}
</select> </mapper>
package com.stone.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; /**
* 访问数据库类
*/
public class DBAccess {
public SqlSession getSqlSession() throws IOException {
// 通过数据库文件获取数据库连接
Reader reader = Resources
.getResourceAsReader("com/stone/config/Configuration.xml");
// 通过配置信息构建一个SqlSessionFactory
SqlSessionFactory sqlSessionFactory = new SqlSessionFactoryBuilder()
.build(reader);
// 获取SqlSessionFactory的第二种方法;
// InputStream inputStream = DBAccess.class
// .getResourceAsStream("com/stone/config/Configuration.xml");
// SqlSessionFactory factory = new SqlSessionFactoryBuilder()
// .build(inputStream);
// 通过SqlSessoinFactory打开一个数据库会话
SqlSession sqlSession = sqlSessionFactory.openSession();
return sqlSession;
}
}
package com.stone.bean; import java.text.SimpleDateFormat;
import java.util.Date; public class Person { private int id;
private String name;
private Date birthday; 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 Date getBirthday() {
return birthday;
} public void setBirthday(Date birthday) {
this.birthday = birthday;
} @Override
public String toString() {
SimpleDateFormat dateFormat = new SimpleDateFormat("yyyyMMdd HH:mm:SS");
return "Person [id=" + id + ", name=" + name + ", birthday="
+ dateFormat.format(birthday) + "]";
} }
package com.stone.dao; import java.util.ArrayList;
import java.util.Date;
import java.util.List; import org.apache.ibatis.session.SqlSession; import com.stone.bean.Person;
import com.stone.db.DBAccess; public class DBDao { public List<Person> queryPerson() {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
List<Person> persons = new ArrayList<Person>();
try {
sqlSession = dbAccess.getSqlSession();
// 通过sqlSession执行SQL语句;
persons = sqlSession.selectList("Person.queryPersonList");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
return persons;
} public List<Person> queryPerson2() {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
List<Person> persons = new ArrayList<Person>();
try {
sqlSession = dbAccess.getSqlSession();
// 通过sqlSession执行SQL语句;
persons = sqlSession.selectList("Person.queryPerson2");
} catch (Exception e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
return persons;
} public void insertPerson(Person person) {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try {
sqlSession = dbAccess.getSqlSession();
String statement = "Person.insertPerson";
// int The number of rows affected by the insert.
int insert = sqlSession.insert(statement, person);
System.out.println("insert result:" + insert);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
} public void deletePerson(int id) {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
try {
sqlSession = dbAccess.getSqlSession();
String statement = "Person.delPerson";
int delete = sqlSession.delete(statement, id);
System.out.println("delete rownums:" + delete);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
} public Person getPerson(int id) { DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
Person person = null;
try {
sqlSession = dbAccess.getSqlSession();
String statement = "Person.selPerson";
person = sqlSession.selectOne(statement, id);
} catch (Exception e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
return person;
} public int insertPerson2() {
DBAccess dbAccess = new DBAccess();
SqlSession sqlSession = null;
int insertPerson = -1;
try {
sqlSession = dbAccess.getSqlSession();
IPersonMapper mapper = sqlSession.getMapper(IPersonMapper.class); Person person = new Person();
person.setName("name2");
person.setBirthday(new Date());
insertPerson = mapper.insertPerson(person);
sqlSession.commit();
} catch (Exception e) {
e.printStackTrace();
} finally {
if (sqlSession != null) {
sqlSession.close();
}
}
return insertPerson;
} public static void main(String[] args) {
DBDao dbDao = getPersons();
System.out.println("=================");
List<Person> persons2 = getPersons2(dbDao);
System.out.println("=================");
insertPerson(dbDao);
System.out.println("=================");
dbDao.deletePerson(persons2.get(0).getId());
System.out.println("=================");
System.out.println(dbDao.getPerson(persons2.get(1).getId()));
System.out.println("=================");
System.out.println(dbDao.insertPerson2());
} private static void insertPerson(DBDao dbDao) {
Person person = new Person();
person.setName("name");
person.setBirthday(new Date());
dbDao.insertPerson(person);
} private static List<Person> getPersons2(DBDao dbDao) {
List<Person> list2 = dbDao.queryPerson2();
for (Person person : list2) {
System.out.println(person);
}
return list2;
} private static DBDao getPersons() {
DBDao dbDao = new DBDao();
List<Person> list = dbDao.queryPerson();
System.out.println(list.size());
for (Person person : list) {
System.out.println(person);
}
return dbDao;
}
}
package com.stone.dao; import java.util.List; import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.Insert;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.annotations.Update; import com.stone.bean.Person; public interface IPersonMapper {
@Insert("insert into person(name,birthday) values(#{name},#{birthday})")
public int insertPerson(Person person); @Delete("delete from person where id=#{id}")
public int deletePersonById(Person person); @Update("update person set name=#{name},birthday=#{birthday} where id=#{id}")
public int updatePerson(Person person); @Select("select id,name,birthday from person where id=#{id}")
public Person getPersonById(int id); @Select("select id,name,birthday from person")
public List<Person> getPerons(); }
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
#--------------------------------
log4j.logger.java.sql.ResultSet = INFO
log4j.logger.org.apache = INFO
log4j.logger.java.sql.Connection = DEBUG
log4j.logger.java.sql.Statement = DEBUG
log4j.logger.java.sql.PreparedStatement = DEBUG
log4j.logger.com.ibatis = debug log4j.logger.com.ibatis.common.jdbc.SimpleDataSource = debug log4j.logger.com.ibatis.common.jdbc.ScriptRunner = debug log4j.logger.com.ibatis.sqlmap.engine.impl.SqlMapClientDelegate = debug
<?xml version="1.0" encoding="UTF-8"?>
<classpath>
<classpathentry kind="src" path="src"/>
<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.6"/>
<classpathentry kind="lib" path="lib/mybatis-3.2.8.jar" sourcepath="D:/stono/javasoft/mybatis/mybatis-3-mybatis-3.2.8.zip"/>
<classpathentry kind="lib" path="lib/mysql-connector-java-5.1.7-bin.jar"/>
<classpathentry kind="lib" path="lib/log4j-1.2.17.jar"/>
<classpathentry kind="output" path="bin"/>
</classpath>
MyBatis CRUD Java POJO操作的更多相关文章
- Mybatis学习--Java API
学习笔记,选自Mybatis官方中文文档:http://www.mybatis.org/mybatis-3/zh/java-api.html#directoryStructure 既然你已经知道如何配 ...
- Java开发--操作MongoDB
http://www.cnblogs.com/hoojo/archive/2011/06/01/2066426.html介绍到了在MongoDB的控制台完成MongoDB的数据操作,通过前一篇文章我们 ...
- 使用maven根据JSON文件自动生成Java POJO类(Java Bean)源文件
根据JSON文件自动生成Java POJO类(Java Bean)源文件 本文介绍使用程序jsonschema2pojo来自动生成Java的POJO类源文件,本文主要使用maven,其他构建工具请参考 ...
- Java程序操作数据库SQLserver详解
数据库基本操作:增删改查(CRUD) crud介绍(增.删.改.查操作) CRUD是指在做计算处理时的增加(Create).查询(Retrieve)(重新得到数据).更新(Update)和删除(Del ...
- Mybatis成为Java互联网时代首选持久框架的原因
持久层可以将业务数据存储到磁盘,具备长期存储能力,只要磁盘不损坏(大部分的重要数据都会有相关的备份机制),在断电或者其他情况下,重新开启系统仍然可以读取这些数据.一般执行持久任务的都是数据库系统.持久 ...
- java POJO中 Integer 和 int 的不同,用int还是用Integer
https://www.jianshu.com/p/ff535284916f [int和Integer的区别] int是java提供的8种原始类型之一,java为每个原始类型提供了封装类,Intege ...
- Mybatis实现批量添加操作
Mybatis实现批量添加操作 学习内容: 1. 使用 2. 代码实现 2.1 UserMapper.java 接口 2.2 UserMapper.xml 总结: 学习内容: 1. 使用 这里通过动态 ...
- Java实现操作dos命令
java实现操作dos命令的两种方式 1.读取文件中的命令 package com; import java.io.InputStream; public class cmd { public sta ...
- JAVA 链表操作:循环链表
主要分析示例: 一.循环链表简述 二.单链表循环链表 三.双链表循环链表 一.循环链表简述 循环链表即链表形成了一个循环的结构,尾节点不再指向NULL,而是指向头节点HEAD,此时判定链表的结束是尾节 ...
随机推荐
- JAVA基础--线程
sleep和wait的区别: 1. sleep是Thread的方法, wait是object的方法 2. sleep占着CPU睡觉, wait等待CPU,不占用CPU 线程是一个程序内部的顺序控制流 ...
- openssl使用+Demo
1. websiteSSL(secure Socket Layer)TLS(transport Layer Security) - SSL3.0基础之上提出的安全通信标准,目前版本是1.0openss ...
- sql语句优化之not in
多表关联想查a表中除去b表的可用not exists 效率比not in 更高 优化后的语句用时0.421秒 select john.*, (case when round((case john.su ...
- 2016"百度之星" - 资格赛(Astar Round1) Problem D
排个序,map直接搞. #include <stdio.h> #include <math.h> #include<cstring> #include<cma ...
- <Natural Language Processing with Python>学习笔记二
用Enthought Canopy作图果然方便.昨天频频出现无法识别pylab模块的异常,今天终于搞好了.以下是今天出来的图:
- [iOS Animation]-CALayer 性能优化
性能优化 代码应该运行的尽量快,而不是更快 - 理查德 在第一和第二部分,我们了解了Core Animation提供的关于绘制和动画的一些特性.Core Animation功能和性能都非常强大,但如果 ...
- mysql--学生课程成绩表
创建表student: CREATE TABLE `student` ( `sid` INT(11) NOT NULL AUTO_INCREMENT, `sname` VARCHAR(20) NOT ...
- JS、html打开超链接的几种形式
1.直接使用input在原有的标签页中直接打开一个页面,将原有标签页覆盖 在按钮中直接打开一个连接,这里不需要用到js的代码,根据HTML中的onclick属性 <input type=&quo ...
- 在阿里云ECS(CentOS6.5)上安装redis
下载所需的redis 命令: wget http://download.redis.io/releases/redis-3.0.7.tar.gz 结果: 解压redis压缩文件: 命令: .tar.g ...
- pho
PDO(PHP Data Object) 是PHP 5新出来的东西,在PHP 6都要出来的时候,PHP 6只默认使用PDO来处理数据库,将把所有的数据库扩展移到了PECL,那么默认就是没有了我们喜爱的 ...