本文主要介绍了如何使用mybatis进行简单的数据库操作。本文使用的是mybatis3.05。
1.创建数据库表(User表)
CREATE TABLE `NewTable` (
`userId` bigint(20) NOT NULL AUTO_INCREMENT ,
`userName` varchar(30) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`password` varchar(80) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL ,
`comment` varchar(250) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL ,
PRIMARY KEY (`userId`),
UNIQUE INDEX `UQ_User_userName` (`userName`) USING BTREE
)
2. 创建实体类
package com.mybatis.config;
public class User {
private int userId;
private String userName;
private String password;
private String comment;
public int getUserId() {
return userId;
}
public void setUserId(int userId) {
this.userId = userId;
}
public String getUserName() {
return userName;
}
public void setUserName(String userName) {
this.userName = userName;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public String getComment() {
return comment;
}
public void setComment(String comment) {
this.comment = comment;
}
}
3.创建数据访问接口
package com.mybatis.config;
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;
public interface UserDao {
@Insert("insert into user(userName,password,comment) values(#{userName},#{password},#{comment})")
public int insert(User user);
@Update("update user set userName=#{userName},password=#{password},comment=#{comment} where userName=#{userName}")
public int update(User user);
@Delete("delete from user where userName=#{userName}")
public int delete(String userName);
@Select("select * from user order by userName asc")
public List<User> selectAll();
@Select("select count(*) c from user;")
public int countAll();
@Select("select * from user where userName=#{userName}")
public User findByUserName(String userName);
}
4.编写mybatis配置文件
<?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>
<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://localhost:3306/hlp?useUnicode=true&characterEncoding=UTF-8&zeroDateTimeBehavior=convertToNull" />
<property name="username" value="root" />
<property name="password" value="1234" />
</dataSource>
</environment>
</environments>
</configuration>
5.数据库访问辅助类
package com.mybatis.config;
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 DbHelper {
private static DbHelper dbHelper=null;
private static SqlSessionFactory sqlSessionFactory=null;
private DbHelper(){
String resource = "MyBatis-Configuration.xml";
Reader reader;
try {
reader = Resources.getResourceAsReader(resource);
sqlSessionFactory =new SqlSessionFactoryBuilder().build(reader);
sqlSessionFactory.getConfiguration().addMapper(UserDao.class);
} catch (IOException e) {
e.printStackTrace();
}
}
public SqlSession getSqlSession(){
return sqlSessionFactory.openSession();
}
public static DbHelper getInstance(){
if(dbHelper==null)
dbHelper = new DbHelper();
return dbHelper;
}
}
6.编写测试代码
package com.mybatis.config;
import java.util.Iterator;
import java.util.List;
import org.apache.ibatis.session.SqlSession;
import org.junit.Test;
public class UserDaoTest {
@Test
public void userDaoTest() throws Exception
{
SqlSession session = DbHelper.getInstance().getSqlSession();
UserDao userDao = session.getMapper(UserDao.class);
User user = new User();
user.setUserName("hongye");
user.setPassword("123456");
user.setComment("备注");
userDao.insert(user);
System.out.println("记录条数:"+userDao.countAll());
List<User> users = userDao.selectAll();
Iterator<User> iter = users.iterator();
while(iter.hasNext()){
User u = iter.next();
System.out.println("用户名:"+u.getUserName()+"密码:"+u.getPassword());
}
user.setComment("comment");
userDao.update(user);
User u = userDao.findByUserName("hongye");
System.out.println(u.getComment());
userDao.delete("hongye");
System.out.println("记录条数:"+userDao.countAll());
session.commit();
session.close();
}
}
分享到:
相关推荐
MyBatis Plus是一款基于MyBatis的扩展框架,它提供了许多高级特性,简化了MyBatis的使用,尤其是在代码生成方面。"史上最简单 5分钟mybatis plus自动生成模板代码教程"这个压缩包文件,旨在帮助开发者快速掌握如何...
【MyBatis-Spring 进阶教程】 ...总结,MyBatis-Spring的集成使得MyBatis与Spring的协同工作变得更加简单,提高了开发效率。通过理解其核心配置和工作原理,开发者可以更好地运用这一强大的工具。
MyBatisPlus是一个基于MyBatis的简单封装框架,它为开发者提供了更便捷的数据操作功能,包括CRUD操作、条件构造、动态SQL等。MyBatisPlus在MyBatis的基础上,减少了大量重复的代码,提高了开发效率,使得开发者能够...
SpringBoot集成JPA(Java Persistence API)或MyBatis等持久层框架,使得数据库操作变得简单,提高了数据处理的效率。 四、Maven构建工具 “mvnw”文件是Maven的可执行脚本,用于项目的构建、依赖管理和打包。Maven...
例如,Spring框架就提供了很好的支持,其IoC(Inversion of Control)容器和AOP(Aspect-Oriented Programming)特性使得组件间解耦和管理变得更加简单。 核心技术方面,Java集合框架是系统开发的核心,包括...
本实例将详细解析这三大框架如何协同工作,提升开发效率,并提供一个基于注解的配置方式。 Struts2作为MVC框架的核心,负责控制应用程序的流程,它处理HTTP请求,调度到相应的Action,然后将结果返回给用户。Struts...
这是一个基于Java技术栈的药品销售配送网站系统的源码包,主要使用了JSP、Spring、SpringMVC(SSM)框架。源码的结构清晰,包含多个子目录,用于组织不同的功能模块。以下是对该系统及其相关技术的详细解释: 1. **...
在MyBatis中,`org.apache.ibatis.session.SqlSession`是与数据库交互的主要接口,而`org.apache.ibatis.builder.AnnotationBuilder`用于构建基于注解的SQL映射器。`@Select`、`@Insert`、`@Update`和`@Delete`是...
MyBatisPlus是一个基于MyBatis的简单、强大的数据库操作工具,它提供了更方便的 CRUD 操作以及一些实用的查询功能。在 SpringBoot 框架中集成 MyBatisPlus,可以极大地简化数据库操作,提高开发效率。下面将详细介绍...
`org.springframework.aop.aspectj.annotation.AspectJProxyFactory`则支持基于AspectJ的AOP编程。 - **数据访问API**:包括`org.springframework.jdbc.core.JdbcTemplate`和`org.springframework.orm.hibernate5....
- **Spring MVC**:基于Spring,提供了一种清晰的MVC架构实现,用于构建Web应用程序。 - **MyBatis**:是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。 本文将详细介绍如何整合SSM框架,并通过实例...
总结来说,"180-校园志愿者管理系统"是一个基于Spring Boot框架的Web应用程序,它利用MVC设计模式,通过自定义注解和配置来实现功能扩展,并且可能运用了ORM技术进行数据库操作。这个系统旨在高效管理校园内的志愿者...
总的来说,"146-生鲜超市管理的设计与实现源码"为我们展示了如何运用现代Web技术和Java企业级框架构建一个完整的超市管理系统。通过深入研究源码,开发者不仅可以学习到实际项目开发经验,也能进一步掌握SpringBoot...
Struts是Java Web开发中的一个开源框架,主要用来构建基于MVC...通过深入学习和实践这些知识点,你将能够熟练地运用Struts2框架开发高效、健壮的Java Web应用。记得结合实际案例和项目实践,以加深理解并提升技能。
2. 自动化生成SQL:一些ORM(对象关系映射)库,如Hibernate(Java)、SQLAlchemy(Python)、Entity Framework(C#)等,可以基于模型类自动构建SQL语句。它们会根据模型的属性生成INSERT、SELECT、UPDATE、DELETE...
14. **MVC注解驱动**:通过启用`@EnableWebMvc`或在配置文件中设置`<mvc:annotation-driven>`,可以启用SpringMVC的注解驱动,简化配置。 15. **SpringMVC与其他Spring组件的集成**:如与Spring AOP结合实现切面...
通过深入理解并熟练运用这些知识点,开发者能够高效地构建稳定、健壮的Struts2应用程序,提升项目开发的效率和质量。本速查手册By FengGe旨在提供快速查询和参考,助力开发者在实际工作中更好地应用Struts2框架。
虽然题目库没有明确提及,但Java开发者通常需要了解Spring、MyBatis等主流框架,理解其工作原理并能够熟练运用。 以上知识点涵盖了Java笔试题库中的主要内容,这些知识对于任何Java开发者来说都是必备的。通过深入...
《深入剖析Spring Framework 5.1.x:基于IDEA与Gradle的源码构建》 在软件开发领域,Spring Framework是Java平台上的一个基石,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、数据访问、Web应用支持等...