`
zhangfeilo
  • 浏览: 399781 次
  • 性别: Icon_minigender_1
  • 来自: 昆明
社区版块
存档分类
最新评论

mybatis简单运用(基于Annotation)

阅读更多

本文主要介绍了如何使用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&amp;characterEncoding=UTF-8&amp;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-code-generate.zip

    MyBatis Plus是一款基于MyBatis的扩展框架,它提供了许多高级特性,简化了MyBatis的使用,尤其是在代码生成方面。"史上最简单 5分钟mybatis plus自动生成模板代码教程"这个压缩包文件,旨在帮助开发者快速掌握如何...

    02 mybatis进阶1

    【MyBatis-Spring 进阶教程】 ...总结,MyBatis-Spring的集成使得MyBatis与Spring的协同工作变得更加简单,提高了开发效率。通过理解其核心配置和工作原理,开发者可以更好地运用这一强大的工具。

    MyBatisPlus介绍入门以及项目集成MyBatisPlus示例代码

    MyBatisPlus是一个基于MyBatis的简单封装框架,它为开发者提供了更便捷的数据操作功能,包括CRUD操作、条件构造、动态SQL等。MyBatisPlus在MyBatis的基础上,减少了大量重复的代码,提高了开发效率,使得开发者能够...

    基于java的-36-4S店车辆管理系统--LW-源码.zip

    SpringBoot集成JPA(Java Persistence API)或MyBatis等持久层框架,使得数据库操作变得简单,提高了数据处理的效率。 四、Maven构建工具 “mvnw”文件是Maven的可执行脚本,用于项目的构建、依赖管理和打包。Maven...

    基于java的系统框架设计与开发

    例如,Spring框架就提供了很好的支持,其IoC(Inversion of Control)容器和AOP(Aspect-Oriented Programming)特性使得组件间解耦和管理变得更加简单。 核心技术方面,Java集合框架是系统开发的核心,包括...

    Struts2+Spring+Mybaits3框架整合实例

    本实例将详细解析这三大框架如何协同工作,提升开发效率,并提供一个基于注解的配置方式。 Struts2作为MVC框架的核心,负责控制应用程序的流程,它处理HTTP请求,调度到相应的Action,然后将结果返回给用户。Struts...

    基于java的-133-jspSSM368的药品销售配送网站系统-LW-源码.zip

    这是一个基于Java技术栈的药品销售配送网站系统的源码包,主要使用了JSP、Spring、SpringMVC(SSM)框架。源码的结构清晰,包含多个子目录,用于组织不同的功能模块。以下是对该系统及其相关技术的详细解释: 1. **...

    javaAPI合集

    在MyBatis中,`org.apache.ibatis.session.SqlSession`是与数据库交互的主要接口,而`org.apache.ibatis.builder.AnnotationBuilder`用于构建基于注解的SQL映射器。`@Select`、`@Insert`、`@Update`和`@Delete`是...

    MyBatisPlus基础使用代码

    MyBatisPlus是一个基于MyBatis的简单、强大的数据库操作工具,它提供了更方便的 CRUD 操作以及一些实用的查询功能。在 SpringBoot 框架中集成 MyBatisPlus,可以极大地简化数据库操作,提高开发效率。下面将详细介绍...

    spring-framework-4.3.14.RELEASE-docs.zip

    `org.springframework.aop.aspectj.annotation.AspectJProxyFactory`则支持基于AspectJ的AOP编程。 - **数据访问API**:包括`org.springframework.jdbc.core.JdbcTemplate`和`org.springframework.orm.hibernate5....

    SSM框架——详细整合教程.docx

    - **Spring MVC**:基于Spring,提供了一种清晰的MVC架构实现,用于构建Web应用程序。 - **MyBatis**:是一个支持普通SQL查询、存储过程以及高级映射的优秀持久层框架。 本文将详细介绍如何整合SSM框架,并通过实例...

    180-校园志愿者管理系统--源码.zip

    总结来说,"180-校园志愿者管理系统"是一个基于Spring Boot框架的Web应用程序,它利用MVC设计模式,通过自定义注解和配置来实现功能扩展,并且可能运用了ORM技术进行数据库操作。这个系统旨在高效管理校园内的志愿者...

    146-生鲜超市管理的设计与实现源码.zip

    总的来说,"146-生鲜超市管理的设计与实现源码"为我们展示了如何运用现代Web技术和Java企业级框架构建一个完整的超市管理系统。通过深入研究源码,开发者不仅可以学习到实际项目开发经验,也能进一步掌握SpringBoot...

    struts学习资料

    Struts是Java Web开发中的一个开源框架,主要用来构建基于MVC...通过深入学习和实践这些知识点,你将能够熟练地运用Struts2框架开发高效、健壮的Java Web应用。记得结合实际案例和项目实践,以加深理解并提升技能。

    model自动生成对应crud sql语句

    2. 自动化生成SQL:一些ORM(对象关系映射)库,如Hibernate(Java)、SQLAlchemy(Python)、Entity Framework(C#)等,可以基于模型类自动构建SQL语句。它们会根据模型的属性生成INSERT、SELECT、UPDATE、DELETE...

    SpringMVC学习笔记+学习源码.zip

    14. **MVC注解驱动**:通过启用`@EnableWebMvc`或在配置文件中设置`&lt;mvc:annotation-driven&gt;`,可以启用SpringMVC的注解驱动,简化配置。 15. **SpringMVC与其他Spring组件的集成**:如与Spring AOP结合实现切面...

    Struts速查手册HandBood系列(By FengGe整理)

    通过深入理解并熟练运用这些知识点,开发者能够高效地构建稳定、健壮的Struts2应用程序,提升项目开发的效率和质量。本速查手册By FengGe旨在提供快速查询和参考,助力开发者在实际工作中更好地应用Struts2框架。

    JAVA笔试题库共4页.pdf.zip

    虽然题目库没有明确提及,但Java开发者通常需要了解Spring、MyBatis等主流框架,理解其工作原理并能够熟练运用。 以上知识点涵盖了Java笔试题库中的主要内容,这些知识对于任何Java开发者来说都是必备的。通过深入...

    lz-spring-framework-5.1.x.zip

    《深入剖析Spring Framework 5.1.x:基于IDEA与Gradle的源码构建》 在软件开发领域,Spring Framework是Java平台上的一个基石,它为开发者提供了丰富的功能,包括依赖注入、面向切面编程、数据访问、Web应用支持等...

Global site tag (gtag.js) - Google Analytics