mysql.sql
DROP TABLE USERS;
CREATE TABLE USERS
(
ID INT NOT NULL AUTO_INCREMENT,
NUM INT,
NAME VARCHAR(400),
SEX INT,
AGE INT,
UKEY VARCHAR(50),
CREATE_DATE VARCHAR(50),
PASSWORD VARCHAR(50),
EMAIL VARCHAR(50),
REMARK VARCHAR(250),
PRIMARY KEY(ID)
);
mybatis-config.xml
<?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>
<properties resource="config/config.properties"></properties>
<typeAliases>
<package name="pojo" />
</typeAliases>
<environments default="development">
<environment id="development">
<transactionManager type="JDBC" />
<dataSource type="POOLED">
<property name="driver" value="${driver}" />
<property name="url" value="${url}" />
<property name="username" value="${username}" />
<property name="password" value="${password}" />
<property name="poolMaximumActiveConnections" value="15" />
<property name="poolMaximumCheckoutTime" value="5000" />
</dataSource>
</environment>
</environments>
</configuration>
config.properties
#Mysql
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://10.16.11.210:3306/test
username=root
password=123456
poolMaximumActiveConnections=15
SessionFactory.java
package common;
import java.io.IOException;
import java.io.Reader;
import mapper.AnnUsersMapper;
import org.apache.ibatis.io.Resources;
import org.apache.ibatis.session.Configuration;
import org.apache.ibatis.session.SqlSession;
import org.apache.ibatis.session.SqlSessionFactory;
import org.apache.ibatis.session.SqlSessionFactoryBuilder;
public class SessionFactory {
private static String RESOURCE = "config/mybatis-config.xml";
private static ThreadLocal<SqlSession> threadLocal = new ThreadLocal<SqlSession>();
public static SqlSessionFactory getSessionFactory() {
Reader reader = null;
try {
reader = Resources.getResourceAsReader(RESOURCE);
} catch (IOException e) {
System.out.println("read mybatis-config.xml failed!");
e.printStackTrace();
}
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
Configuration config = sessionFactory.getConfiguration();
config.addMapper(AnnUsersMapper.class);
return sessionFactory;
}
public static SqlSession getSession() {
SqlSession session = threadLocal.get();
if (session == null) {
session = getSessionFactory().openSession();
threadLocal.set(session);
return session;
}
return session;
}
public static void closeSession() {
SqlSession session = threadLocal.get();
if (session != null) {
threadLocal.set(null);
session.close();
}
}
}
Users.java
package pojo;
import org.apache.ibatis.type.Alias;
@Alias("Users")
public class Users {
private int id;
private int num;
private String name;
private int sex;
private int age;
private String ukey;
private String createDate;
private String email;
private String password;
private String remark;
public int getSex() {
return sex;
}
public void setSex(int sex) {
this.sex = sex;
}
public int getAge() {
return age;
}
public void setAge(int age) {
this.age = age;
}
public String getUkey() {
return ukey;
}
public void setUkey(String ukey) {
this.ukey = ukey;
}
public String getCreateDate() {
return createDate;
}
public void setCreateDate(String createDate) {
this.createDate = createDate;
}
public String getEmail() {
return email;
}
public void setEmail(String email) {
this.email = email;
}
public String getRemark() {
return remark;
}
public void setRemark(String remark) {
this.remark = remark;
}
public String getPassword() {
return password;
}
public void setPassword(String password) {
this.password = password;
}
public int getId() {
return id;
}
public void setId(int id) {
this.id = id;
}
public int getNum() {
return num;
}
public void setNum(int num) {
this.num = num;
}
public String getName() {
return name;
}
public void setName(String name) {
this.name = name;
}
}
AnnUsersMapper.java
package mapper;
import java.util.List;
import org.apache.ibatis.annotations.Delete;
import org.apache.ibatis.annotations.InsertProvider;
import org.apache.ibatis.annotations.Param;
import org.apache.ibatis.annotations.Select;
import org.apache.ibatis.session.RowBounds;
import pojo.Users;
public interface AnnUsersMapper {
// @Insert("INSERT INTO USERS(num,name,age,sex,ukey,create_date,email,password,remark)values(#{num},#{name},#{age},#{sex},#{ukey},#{createDate},#{email},#{password},#{remark})")
@InsertProvider(type = AnnUsersMapperProvider.class, method = "insert")
int insert(List<Users> users);
@Delete("DELETE FROM USERS")
int delete();
@Select("SELECT count(*) as total FROM USERS")
int count();
@Select("SELECT * FROM USERS")
List<Users> selectByAll(@Param("rowBounds") RowBounds rowBounds);
}
class AnnUsersMapperProvider {
public String insert() {
String sql="INSERT INTO USERS(num,name,age,sex,ukey,create_date,email,password,remark) values(" +
"#{num}," +
"#{name}," +
"#{age}," +
"#{sex}," +
"#{ukey}," +
"#{createDate}," +
"#{email}," +
"#{password}," +
"#{remark}" +
")";
return sql;
}
}
AnnTest.java
package test;
import java.util.Date;
import mapper.AnnUsersMapper;
import org.apache.ibatis.session.RowBounds;
import org.apache.ibatis.session.SqlSession;
import pojo.Users;
import common.SessionFactory;
import java.util.List;
public class AnnTest {
public static void main(String[] args) {
SqlSession session = SessionFactory.getSession();
AnnUsersMapper userMapper = session.getMapper(AnnUsersMapper.class);
try {
System.out.println("---------insert strat------------");
Users users = new Users();
users.setAge(32);
users.setSex(1);
users.setCreateDate("2011-6-27");
users.setEmail("jjj2005jjjj@126.com");
users.setUkey("WERQWERWQERWQERTWETTREEEE");
users.setRemark("nDKJGHJKJHHGHJJJJJGHGYT");
users.setPassword("123456");
users.setName("zhuyj");
Long l = new Date().getTime();
for (int i = 0; i < 100; i++) {
users.setNum(i);
session.insert("pojo.Users.insert", users);
}
session.commit();
System.out.println((new Date().getTime() - l) / 1000.0);
System.out.println("---------insert end-------------");
System.out.println("---------count strat-------------");
Long lll = new Date().getTime();
int count = userMapper.count();
System.out.println(count);
System.out.println(((new Date()).getTime() - lll) / 1000.0);
System.out.println("---------count end---------------");
System.out.println("---------select strat------------");
Long llll = new Date().getTime();
List<Users> li2= userMapper.selectByAll(new RowBounds(9000, 50));
System.out.println(((new Date()).getTime() - llll) /1000.0);
System.out.println("---------select end--------------");
System.out.println(li2.get(1).getName());
System.out.println(li2.size());
} catch (Exception e) {
e.printStackTrace();
session.rollback();
} finally {
SessionFactory.closeSession();
}
}
}
注意一个小问题,不知为什么在mybatis-config.xml使用
<mappers>
<mapper class="mapper.AnnUsersMapper" />
</mappers>
不能加载接口,后来我在SessionFactory.java里加载了
SqlSessionFactory sessionFactory = new SqlSessionFactoryBuilder().build(reader);
Configuration config = sessionFactory.getConfiguration();
config.addMapper(AnnUsersMapper.class);
分享到:
相关推荐
这个"mybatis使用注解方式简单实现的Demo"旨在帮助初学者理解 MyBatis 注解的用法。 首先,我们需要在项目中引入 MyBatis 相关的依赖库。通常,这可以通过 Maven 或 Gradle 的依赖管理来完成。确保在你的 `pom.xml`...
在MyBatis的注解模式下,我们可以直接在DAO接口的方法上使用注解来指定SQL语句。例如,@Select用于查询,@Insert用于插入,@Update用于更新,@Delete用于删除。这种方式简化了XML配置,使得代码更易读、易维护。 ...
接下来,我们可以在SpringMVC的Controller层使用@Autowired注解注入Mapper接口的实现,这样就可以直接调用接口中的方法执行数据库操作。例如,我们可以定义一个UserMapper接口,包含获取用户信息的selectUser方法,...
10MyBatis使用注解开发.md
5. **启用MyBatis注解**:在MyBatis配置文件中开启注解支持,如`<configuration><plugins><plugin interceptor="org.mybatis.spring.mapper.AnnotationMapperInterceptor"/></plugins></configuration>`。...
Mybatis基于注解实现多表查询功能是指使用Mybatis框架中的注解来实现多表查询的功能。这种方法可以简化配置,提高开发效率。下面我们将详细介绍如何使用Mybatis基于注解实现多表查询功能。 一、多表查询的概念 在...
实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用注解demo实现mybatis常用...
通过这个简单的MyBatis注解案例,我们可以了解到如何利用MyBatis进行基本的数据库操作,包括选择性地使用注解替代XML配置,以及如何在Spring框架下集成MyBatis。在实际项目中,还可以结合MyBatis的其他特性,如结果...
MyBatis使用注解开发实现步骤解析 MyBatis是一个流行的持久层框架,它提供了两种方式来开发映射语句,一种是使用XML文件,另一种是使用注解。使用注解开发可以减少配置文件的数量,提高开发效率,但需要注意一些...
下面我们将详细介绍如何使用注解实现MyBatis的CRUD。 1. **注解简介** MyBatis 的注解主要包括 `@Select`、`@Insert`、`@Update` 和 `@Delete`,它们分别用于定义查询、插入、更新和删除操作的SQL语句。此外,还有...
SpringBoot和MyBatis是两个在Java开发领域广泛使用的开源框架。SpringBoot简化了Spring应用的初始搭建以及配置过程,而MyBatis则是一个优秀的持久层框架,它支持定制化SQL、存储过程以及高级映射。当我们把两者结合...
Spring 与 各框架的组各下来,版本就特别的多,针对简单的 使用注解来管理事务的,研究了两天,要不网上...说一下环境 Intellij Idea 15 + Maven + Spring 4.25 + Mybatis 3使用注解的方式,进行的事务回滚,欢迎测试。
【Mybatis+注解轻松实现脱敏】是一个针对Java开发工程师的实用技术,旨在帮助他们在处理敏感数据时,如身份证号、手机号等信息,进行数据脱敏和加密。这一技术结合了MyBatis插件和注解的方式,使得数据脱敏过程变得...
在SSM框架下,服务层通常是业务逻辑的主要实现,使用注解进行配置,并通过Spring管理其生命周期。 总的来说,"spring+springMvc+MyBatis+注解"的组合提供了一套强大的、基于Java的Web应用开发解决方案,利用注解...
`ExamSystemByNote`可能是一个示例项目,其中展示了如何在考试系统中使用MyBatis注解进行数据操作。通过阅读该项目的代码,你可以了解到注解在实际项目中的具体使用。 总的来说,MyBatis的注解配置为开发者提供了...
MyBatis 是一款优秀的持久层框架,可以很方便的在java中实现对数据库的操作。 MyBatis 可以将sql语句映射为...另一种是java注解,书写简便。 博文链接:https://blog.csdn.net/m0_37809890/article/details/88381897
MyBatis注解简化了传统的XML配置,可以在Mapper接口和实现类中直接定义SQL语句。主要的注解有: 1. `@Select`:用于查询操作,可以包含一个SQL查询语句。 2. `@Insert`:插入数据,可以包含一个INSERT语句,支持...
标题提到的 "Mybatis 接口注解" 主要是指在 Service 或 Dao 接口中使用注解来简化数据访问的配置。 传统的 Mybatis 使用方式是通过编写 XML 映射文件,例如 `User.xml`,来定义 SQL 语句、参数映射以及结果映射。...
MyBatis是一款优秀的Java持久层框架,它支持定制化SQL、存储过程以及高级映射。在本项目中,我们将深入探讨...通过实践项目"MyBatisPro12",你可以进一步加深对MyBatis注解和动态SQL的理解,并将其应用到实际开发中。
MyBatis 基于注解的增删改查示例程序,使用Spring的IOC机制注入,降低程序间的耦合性