基本步骤:
- 加入jar包
- 定义dao接口
- 定义配置文件
- 实现dao接口
快速示例
环境
mysql数据库,已经表user,内有字段id,name,mark,其中id为主键,并且是自动递增类型
CREATE TABLE `user` (
`id` int(11) NOT NULL AUTO_INCREMENT,
`name` varchar(20) DEFAULT NULL,
`mark` varchar(100) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=5 DEFAULT CHARSET=utf8;
1.所需JAR包
mybatis-3.0.5.jar
2.对象实体类 User.java 包路径testMybatis.user
package testMybatis.user;
public class User {
Long id;
String name;
String mark;
public Long getId() {
return id;
}
public void setId(Long id) {
this.id = id;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
public String getMark() {
return mark;
}
public void setMark(String mark) {
this.mark = mark;
}
@Override
public String toString() {
return "User [id=" + id + ", name=" + name + ", mark=" + mark + "]";
}
}
3.DAO层接口类 TestDao.java 包路径testMybatis.user
package testMybatis.user;
public interface TestDao {
public int insert(User user);
public User select(long id);
public List<User> selectAll();
public int delete(long id);
}
4.定义配置文件
(注意:文件位置与接口在同一位置,文件名与接口同名,后缀以.xml结尾)
示例文件TestDao.xml 位置 testMybatis.user;
<?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="testMybatis.user.TestDao">
<insert id="insert" parameterType="testMybatis.user.User" useGeneratedKeys="true" keyProperty="id">
insert into user (name,mark)
values (#{name},#{mark})
</insert>
<select id="select" parameterType="long" resultType="testMybatis.user.User">
select * from user
where name.id=#{id}
</select>
<select id="selectAll" resultType="testMybatis.user.User" >
select * from user
</select>
<delete id="delete" parameterType="long">
delete from user
where id = #{id}
</delete>
</mapper>
5.实现类TestDaoImp.java
(注意:本示例为快速测试使用的是编码配置数据源工厂,一般使用文件配置)
package testMybatis.user;
import java.util.List;
/**
* @author DingFengHua
* @since Apr 16, 2012
*/
public class TestDaoImp implements TestDao {
//当前用于快速测试,一般设计成单例使用工具类来调用
static SqlSessionFactory sqlSessionFactory;
static {
DataSource dataSource = new PooledDataSource("com.mysql.jdbc.Driver",
"jdbc:mysql://localhost/mybatis?userUnicode=true&characterEncoding=utf8", "admin", "123456");
Environment environment = new Environment("test", new JdbcTransactionFactory(), dataSource);
Configuration configuration = new Configuration(environment);
configuration.addMapper(TestDao.class);
sqlSessionFactory = new SqlSessionFactoryBuilder().build(configuration);
}
/*
* (non-Javadoc)
* @see testMybatis.user.testDao#insertName(testMybatis.user.User)
*/
@Override
public int insert(User user) {
SqlSession session = sqlSessionFactory.openSession();
int num = 0;
try {
TestDao dao = session.getMapper(TestDao.class);
num = dao.insert(user);
session.commit();
} finally {
session.close();
}
return num;
}
/*
* (non-Javadoc)
* @see testMybatis.user.testDao#select(long)
*/
@Override
public User select(long id) {
SqlSession session = sqlSessionFactory.openSession();
try {
TestDao dao = session.getMapper(TestDao.class);
return dao.select(id);
} finally {
session.close();
}
}
/*
* (non-Javadoc)
* @see testMybatis.user.testDao#delete(long)
*/
@Override
public int delete(long id) {
SqlSession session = sqlSessionFactory.openSession();
try {
TestDao dao = session.getMapper(TestDao.class);
int num = dao.delete(id);
session.commit();
return num;
} finally {
session.close();
}
}
/* (non-Javadoc)
* @see testMybatis.user.testDao#selectAll()
*/
@Override
public List<User> selectAll() {
SqlSession session = sqlSessionFactory.openSession();
try {
TestDao dao = session.getMapper(TestDao.class);
return dao.selectAll();
} finally {
session.close();
}
}
}
6.测试
public class Main {
public static void main(String... a) {
TestDao main = new TestDaoImp();
User user = new User();
user.setName("name1");
user.setMark("no mark");
System.out.println(main.insert(user));
//System.out.println(main.delete(1l));
for (User u : main.selectAll()) {
System.out.println(u);
}
}
}
完成
分享到:
相关推荐
完整的MyBatis3.2.2连接MySQL数据库示例代码,包含增删改查及测试方法代码,可以下载学习,初学者也能轻松上手。
Mybatis配置的示例代码,整合了阿里的druid连接池。适合新手上手学习,也可以直接使用
降低耦合度:MyBatis 使得应用程序与数据库实现了解耦,便于代码的模块化管理和维护。 简化数据库操作:MyBatis 简化了 JDBC 代码的编写,减少了手动设置参数和获取结果集的工作量。 支持事务管理:MyBatis 可以与 ...
spring boot快速上手示例,集成了swagger+knife4j接口文档,集成mybatis-plus持久化,统一的数据返回封装,集成mybatis-plus-generator代码生成器,加入了lombok框架,一个完成的sping boot 示例项目,简单易上手
基于这样的背景下,我开源了本示例项目,方便大家快速上手Spring Boot、Spring Cloud 。 每个示例都带有详细的介绍文档、作者在使用过程中踩过的坑、解决方案及参考资料,方便快速上手为你提供学习捷径,少绕弯路...
4、优点:快速上手、全面支持验证、授权、加密和会话、灵活自定义设计、支持web环境、可以无缝集成spring等优点。可以用来用户验证、用户授权、用户session管理、安全加密等 5、基于RBAC五张表:用户表 tb_user、...
Spring Boot学习范例 Spring Boot使用的各种示例,以最简单,最实用为标准,此开源项目中的每个示例都以最小依赖,最简单为标准,帮助初学者快速掌握Spring Boot各个组件的使用。 | | | ||推荐程序员都关注的一个...
数据库表user字段名示例id1username1password1数据库表auth字段名示例id1username1roleuserpermissionuser:hi快速上手建立数据库配置数据库连接server.port=8080#shiroshiro.enabled=trueshiro.rememberMe.cookie....
它是一个典型的MVC三层框架示例工程,快速简单的上手。 涉及技术组件 SpringMVC MyBaits Apache Shiro Bootstrap3 Sitemesh3 Activiti log4j2; 集成示例 用户登录 文件上传下载 文件压缩 Excel导入 JQuery联想搜索 ...
基于这样的背景下,我开源了本示例项目,方便大家快速上手Spring Boot,Spring Cloud。 每个示例都带有详细的介绍文档,作者在使用过程中踩过的坑,解决方案和参考资料,方便快速上手为你提供学习捷径,少绕弯路,...
它是一个典型的MVC三层框架,快速简单的上手。 springboot-freemarker 包含框架有:SpringBoot、SpringMVC、MyBaits、Bootstrap3、Druid、Freemarker; 集成示例有:增删改查及分页;防XSS、SQL注入; 数据库配置 ...
它是一个典型的MVC三层框架,快速简单的上手。 springboot-jsp 包含框架有:SpringBoot、SpringMVC、MyBaits、Bootstrap3、Druid; 集成示例有:增删改查及分页;防XSS、SQL注入; 前端采用的jsp、springboot对jsp...
通过观看演示视频,开发者可以更快速地上手系统,提高工作效率。源码介绍部分对系统的技术选型、架构设计和核心功能进行了简要概述,帮助开发者对系统有一个初步的了解。同时,源码介绍还提供了一些关键模块的代码...
文档还提供了系统部署和运行的环境要求,以及常见问题的解决方案,方便用户快速上手和日常使用。 此外,该系统具有良好的可扩展性和可定制性,用户可以根据实际需求进行二次开发和定制,以满足不同场景下的就业信息...
Spring Boot教程,技术栈示例代码,快速简单上手教程 SpringBoot学习的相关工程并辅以博文讲解。主要包括入门的Hello World,自定义配置的获取,集成mybatis的xml和注解使用,集成jpa的使用,集成德鲁伊进行项目的...
经过对Guns项目的修改,使该项目成为一个通用Mapper和分页插件使用的示例。 项目约会了以下两个依赖: < groupId>tk.mybatis < artifactId>mapper-spring-boot-starter ${mapper-starter.version} ...