准备基本jar包
mybatis-3.0.5.jar,
mysql-connector-java-xxx.jar
表对象User,包含id,name,age,getset、toString方法。
mybatis配置文件
<?xml version="1.0" encoding="UTF-8" ?> <!-- iBatis 和 MyBatis 的全局配置文件使用不同的 DTD 约束,在将应用由 iBatis 升级至 MyBatis 时需要注意(两者的映射文件 DTD 约束也不相同) --> <!DOCTYPE configuration PUBLIC "-//mybatis.org//DTD Config 3.0//EN" "http://mybatis.org/dtd/mybatis-3-config.dtd"> <!-- 这是根标签 --> <configuration> <!-- 元素允许在主配置文件之外提供一个properties格式对应文件,从而使得主配置文件更加通用。这样对部署非常有用 --> <!--当加入第二个配置文件的时候编译器报错--> <properties resource="db.properties" /> <typeAliases> <typeAlias alias="User" type="study.renk.pojo.User" /> </typeAliases> <!-- 配置数据源相关的信息 --> <!--同时使用过access做的配置,将mysql_修改为access_就可以了--> <environments default="demo"> <environment id="demo"> <transactionManager type="JDBC" /> <dataSource type="POOLED"> <property name="driver" value="${mysql_driver}"/> <property name="url" value="${mysql_url}" /> <property name="username" value="${mysql_username}" /> <property name="password" value="${mysql_password}" /> </dataSource> </environment> </environments> <mappers> <mapper resource="study/renk/mapper/user.xml"/> </mappers> </configuration>
数据库配置文件db.properties
mysql_driver = com.mysql.jdbc.Driver mysql_url = jdbc:mysql://127.0.0.1:3306/zrk_test mysql_username = root mysql_password =1234 access_driver = sun.jdbc.odbc.JdbcOdbcDriver access_url = jdbc:odbc:driver={Microsoft Access Driver (*.mdb)};DBQ=E:/db.mdb access_username = db access_password =acms_123
User.xml mybatis的操作映射文件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"> <!-- namespace 指向接口,接口中声明以ID命名的方法,参数和返回对象类型保持和配置文件中一致 --> <!-- 通过UserMapper um = sqlSession.getMapper(UserMapper.class);获取对象后,可直接调用 --> <mapper namespace="study.renk.dao.UserMapper"> <select id="selectUser" parameterType="int" resultType="User"> <!-- CDATA说明,指定CDATA内信息不会被解析器解析,比如sql中出现大于小于时 --> <![CDATA[ select * from t_zrk_user where id = #{id} ]]> </select> <select id="selectByCondition" parameterType="User" resultType="User"> <![CDATA[ select * from t_zrk_user where 1=1 ]]> <if test="name!=null and name!=''"> <![CDATA[ and name like CONCAT('%',#{name},'%') ]]> </if> <if test="age!=null and age!=''"> <![CDATA[ and age = #{age} ]]> </if> </select> <insert id="insertUser" parameterType="User"> insert into t_zrk_user (id,name,age) values(#{id},#{name},#{age}) </insert> <!-- 此方法的foreach,在使用access时,会提示出错。 在使用批量插入时,一定得测试数据库是否支持 --> <insert id="insertBatchUser" parameterType="java.util.List"> insert into t_zrk_user (id,name,age) values <foreach collection="list" item="item" index="index" separator="," > (#{item.id},#{item.name},#{item.age}) </foreach> </insert> </mapper>
在此处着重说明下批量更新操作。
使用access做批量插入时,系统直接报错,不支持此批量操作,换到mysql时,就正常了。
UserMapper映射接口
package study.renk.dao; import java.util.List; import study.renk.pojo.User; public interface UserMapper { User selectUser(String id); List selectByCondition(User user); void insertUser(User user); void insertBatchUser(List<User> list); }
调用Main.java
package study.renk.domain; import java.io.IOException; import java.io.InputStream; import java.util.ArrayList; import java.util.List; import org.apache.commons.logging.Log; import org.apache.commons.logging.LogFactory; import org.apache.ibatis.io.Resources; import org.apache.ibatis.session.SqlSession; import org.apache.ibatis.session.SqlSessionFactory; import org.apache.ibatis.session.SqlSessionFactoryBuilder; import study.renk.dao.UserMapper; import study.renk.pojo.User; public class Main { private static final Log logger = LogFactory.getLog(Main.class); private UserMapper um; public UserMapper getUm() { return um; } public void setUm(UserMapper um) { this.um = um; } public static void main(String[] args) throws IOException { // 获取配置文件的输入流 InputStream is = Resources.getResourceAsStream("mybatis.xml"); // 获取我们的SqlSessionFactory(相当于Hibernate的SessionFactory); //SqlSessionFactoryBuilder有点类似于Hibernate的Configuration。 SqlSessionFactory ssf = new SqlSessionFactoryBuilder().build(is); // 获取一个Session SqlSession ss = ssf.openSession(); UserMapper um = ss.getMapper(UserMapper.class); // User user = um.selectUser("2013073101"); // System.out.println(user); // User condition = new User(); // condition.setName("哈哈"); long b_t = System.currentTimeMillis(); List<User> list = new ArrayList<User>(); for(int i=0;i<10000;i++){ User user = new User(); user.setId(1308010000+i+""); user.setName("Name"+(10000+i)); // if(i == 3) // user.setAge(15+i+"aa"); // else user.setAge(15+i+""); list.add(user); //10000条记录插入耗时:13819ms // um.insertUser(user); } //10000条记录插入耗时:2344ms um.insertBatchUser(list); System.out.println("插入用时:====>"+ (System.currentTimeMillis()-b_t)+"ms"); try{ //下面的ss.select 此类,需要把user.xml中namespace修改为User // t.commit(); // User user = (User)ss.selectOne("User.selectUser","2013072901"); // System.out.println(user); // Map map = ss.selectMap("User.selectByCondition",condition,"id"); // System.out.println(map.get("2013072901")); // List list = ss.selectList("User.selectByCondition",condition); // for(int i=0;i<list.size();i++){ // logger.info(list.get(i)); // } }catch(Exception e){ ss.close(); e.printStackTrace(); } } }
相关推荐
在实际开发中,为了提高代码的复用性和减少重复工作,开发者通常会实现一套通用的增删改查模板,这就是“Mybatis通用增删改查”的概念。 1. **基础 DaoImpl 概念** Dao(Data Access Object)接口是Java中用于...
在本教程中,我们将深入探讨如何利用 MyBatis 实现数据库的增删改查(CRUD)功能。 ### 一、MyBatis 概述 MyBatis 是一个轻量级的 ORM(对象关系映射)框架,它将 SQL 语句与 Java 代码分离,通过 XML 或注解配置...
在本文中,我们将深入探讨如何使用Mybatis来实现基本的数据库增删改查(CRUD)操作。 首先,我们需要在项目中引入Mybatis的依赖。通常,这可以通过Maven或Gradle来完成。在Maven的pom.xml文件中,添加以下依赖: `...
在本压缩包中,包含了 MyBatis 基础运行所需的核心组件和其他依赖库,用于实现基本的增删改查操作。 1. `mybatis-3.1.1-javadoc.jar`:这是 MyBatis 框架的 Java 文档,包含所有类和接口的详细说明,对于开发者来说...
本文将详细讲解MyBatis3中的增删改查(CURD)基本操作。 首先,我们来看“增”操作。在MyBatis中,新增数据通常通过`<insert>`标签来实现。例如,假设有一个User实体类,我们可以通过以下方式插入一条新的用户记录...
在本项目中,“微信小程序+springboot+mybatis实现增删改查(微信小程序端)”是结合了前端微信小程序与后端Java服务的典型应用实例,主要用于演示如何通过这些技术实现实时的数据操作功能。 首先,微信小程序部分...
在本项目中,我们主要探讨的是如何利用SpringBoot框架与Mybatis进行数据库的增删改查操作。SpringBoot以其简洁的配置和快速的启动能力,成为现代Java开发中的热门选择,而Mybatis作为轻量级的持久层框架,提供灵活的...
在Java Web应用中,Mybatis常用于处理数据库操作,如增删改查(CRUD)。下面我们将详细讨论如何使用Mybatis来实现这些基本操作。 一、Mybatis的架构与核心组件 Mybatis主要由以下几个核心组件组成: 1. **...
MyBatis 是一款优秀的持久层框架,它支持...通过这个项目,你可以全面理解 MyBatis 在 Java 应用中的工作原理,并掌握如何利用 MyBatis 实现数据库的增删改查操作。同时,这也将有助于你提升 Java Web 开发的整体技能。
myeclipse下用SSM框架实现的增删改查,数据库为mysql,有操作文档,便于理解,方便初学者直接运行代码去学习
在"Mybatis增删改查基本实现"这个项目中,我们主要探讨MyBatis如何实现对数据库的基本操作,包括插入(Insert)、删除(Delete)、更新(Update)和查询(Select)。以下是一些关键知识点: 1. **Maven构建**:项目...
本教程将详细介绍如何使用Mybatis实现基本的增删改查(CRUD)操作。 1. **Mybatis简介** Mybatis 提供了一种动态SQL支持,通过XML或注解方式配置和映射原生信息,将接口和Java的POJOs(Plain Old Java Objects,...
在本项目中,我们主要探讨的是如何利用Spring Boot、MyBatis和JSP技术来实现对MySQL数据库的增删改查操作,并通过前端界面展示这些功能。这是一个基础的Web应用程序开发示例,适合初学者用来了解和实践相关技术。...
SpringBoot整合MyBatis Plus实现增删改查教程 本文将详细介绍如何使用 Spring Boot 框架和 MyBatis Plus 实现增删改查(CRUD)操作的教程。MyBatis Plus 是一个基于 MyBatis 的 ORM 框架,它提供了许多实用的功能来...
以上就是 MyBatis 实现增删改查的基本流程。通过这个项目,你可以了解到如何结合 MyBatis 与 Java 代码,以及如何在实际应用中使用 MyBatis 进行数据库操作。同时,这个项目也可以作为学习 MyBatis 的基础教程,帮助...
在本项目中,"springMVC+mybatis实现登录和增删改查"是一个典型的Web应用程序,它结合了SpringMVC、MyBatis两大主流框架,以及Bootstrap前端库,来构建一个用户友好的数据管理平台。以下是这个项目涉及到的主要知识...
首先,我们来看"spring+mybatis实现数据增删改查"这一主题。在Java Web开发中,数据增删改查(CRUD)是最基础的操作,涵盖了创建(Create)、读取(Read)、更新(Update)和删除(Delete)四种数据库操作。Spring与...
总的来说,这个"mybatis增删改查实例"涵盖了MyBatis基本的数据库操作以及处理复杂表关系的方法,对于初学者来说,是一份非常实用的学习资料。通过学习和实践,你将能够熟练掌握MyBatis在实际项目中的运用,提升你的...
maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架.maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查基础开发框架.maven、spring、spring mvc、mybatis 整合实现ssm通用增删改查...