使用注解创建mysql文件_mybatis学习——使用注解开发

前言:

一个语句既可以通过 XML 定义,也可以通过注解定义。不过,由于 Java 注解的一些限制以及某些 MyBatis 映射的复杂性,要使用大多数高级映射(比如:嵌套联合映射),仍然需要使用 XML 配置。简单的说就是注解开发只适合一些简单的sql语句,如果sql语句太复杂,建议还是使用 XML 配置。

一、数据库

1.创建数据库,命名为mybatis

2.创建user表,sql语句如下:

create table user(

idint primary keyauto_increment,

usernamevarchar(32),

passwordvarchar(32)

);insert into user values(null,'张三','123456');insert into user values(null,'李四','123456');

二、使用注解开发第一个程序

1.创建maven工程

项目结构:

f60f54605aeae324fa04f6ab02ef03d9.png

2.导入依赖:在pom.xml文件中插入下边语句

mysql

mysql-connector-java

5.1.47

org.mybatis

mybatis

3.5.2

junit

junit

4.12

3.编写核心配置文件:mybatis-config.xml,并引入外部配置文件:db.properties

*注意:

与使用xml映射的方式不同不同,使用注解开发的模式,我们不需要再编写映射文件,因此直接映射到接口类

mybatis-config.xml:

/p>

PUBLIC "-//mybatis.org//DTD Config 3.0//EN"

"http://mybatis.org/dtd/mybatis-3-config.dtd">

db.properties:

driver=com.mysql.jdbc.Driver

url=jdbc:mysql://localhost:3307/mybatis?useSSL=true&useUnicode=true&characterEncoding=UTF-8

username=root

password=root1234

4.编写工具类

packagecom.kuang.utils;importorg.apache.ibatis.io.Resources;importorg.apache.ibatis.session.SqlSession;importorg.apache.ibatis.session.SqlSessionFactory;importorg.apache.ibatis.session.SqlSessionFactoryBuilder;importjava.io.IOException;importjava.io.InputStream;public classMybatisUtils {private staticSqlSessionFactory sqlSessionFactory;static{try{//使用Mabatis第一步:获取SqlSessionFactory对象

String resource = "mybatis-config.xml";

InputStream inputStream=Resources.getResourceAsStream(resource);

sqlSessionFactory= newSqlSessionFactoryBuilder().build(inputStream);

}catch(IOException e) {

e.printStackTrace();

}

}//有了SqlsessionFactory,我们就可以从中获得SqlSession的实例了。//SqlSession完全包含了面向数据库执行sql命令所需的所有方法

public staticSqlSession getSqlSession(){returnsqlSessionFactory.openSession();

}

}

5.编写pojo类

package com.kuang.pojo;

import org.apache.ibatis.type.Alias;

@Alias("user")

public class User {

private int id;

private String name;

private String pwd;

public User() {

}

public User(int id, String name, String pwd) {

this.id = id;

this.name = name;

this.pwd = pwd;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getName() {

return name;

}

public void setName(String name) {

this.name = name;

}

public String getPwd() {

return pwd;

}

public void setPwd(String pwd) {

this.pwd = pwd;

}

@Override

public String toString() {

return "User{" +

"id=" + id +

", name='" + name + '\'' +

", pwd='" + pwd + '\'' +

'}';

}

}

6.编写接口类 (注解的使用就体现在这个类中)

packagecom.kuang.dao;importcom.kuang.pojo.User;importorg.apache.ibatis.annotations.Select;importjava.util.List;importjava.util.Map;public interfaceUserMapper {

@Select("select * from user")

ListgetUsers();

}

7.编写测试类

packagecom.kuang.dao;importcom.kuang.pojo.User;importcom.kuang.utils.MybatisUtils;importorg.apache.ibatis.session.SqlSession;importorg.junit.Test;importjava.util.HashMap;importjava.util.List;public classUserDaoTest {

@Testpublic voidtest(){

SqlSession sqlSession=MybatisUtils.getSqlSession();

UserMapper mapper= sqlSession.getMapper(UserMapper.class);

List users =mapper.getUsers();for(User user : users) {

System.out.println(user);

}

sqlSession.close();

}

}

三、使用注解实现CRUD语句

1.Retrieve(读取)

1.1 查询所有

public interface UserMapper {

@Select("select * from user")

ListgetUsers();

}

1.2 根据id查询

public interface UserMapper {

@Select("select * from user where id = #{id}")

User getUserById(@Param("id") int id);

}

2.Create(增加)

public interface UserMapper {

@Insert("insert into user(id,name,pwd) value(#{id},#{name},#{pwd})")

int addUser(User user);

}

3.Update(更新)

public interface UserMapper {

@Update("update user set name=#{name},pwd=#{pwd} where id=#{id}")

int updateUser(User user);

}

4.Delete(删除)

public interfaceUserMapper {

@Delete("delete from user where id = #{id}")int deleteUser(@Param("id") intid);

}

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值