使用mybatis实现简单增删改查功能
详细操作
1、 首先建立一个web project
2、在lib文件夹中放入使用mybatis所需的三个jar包
3、建立一个名为resources的 Source Folder用于存放连接数据库的文件
4、建立src 并分别建立三个包 名称分别为dao、entity(存放实体类)、 test(测试类)
5、连接数据库配置
database.properties文件代码:
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/mybatis(数据库名称)?useUnicode=true&characterEncoding=utf-8
username=******(数据库账号)
password=******(数据库密码)
mybatis-config代码:
<?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="database.properties"></properties>
<!-- 日志信息 -->
<settings>
<setting name="logImpl" value="STDOUT_LOGGING"/>
</settings>
<!-- 可以去包名 -->
<typeAliases>
<package name="entity"/>
</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}"/>
</dataSource>
</environment>
</environments>
<mappers>
<mapper resource="dao/BananaMapper.xml"/>
</mappers>
</configuration>
6、在src目录的三个包中建立类:
实体类Banana.java(各项变量名称最好与数据库名称对应)代码如下:
package entity;
public class Banana {
private int bid;
private String bname;
private int bprice;
private String bcolor;
private int bsize;
public int getBid() {
return bid;
}
public void setBid(int bid) {
this.bid = bid;
}
public String getBname() {
return bname;
}
public void setBname(String bname) {
this.bname = bname;
}
public int getBprice() {
return bprice;
}
public void setBprice(int bprice) {
this.bprice = bprice;
}
public String getBcolor() {
return bcolor;
}
public void setBcolor(String bcolor) {
this.bcolor = bcolor;
}
public int getBsize() {
return bsize;
}
public void setBsize(int bsize) {
this.bsize = bsize;
}
}
BananaMapper.java(方法接口)代码如下:
package dao;
import java.util.List;
import entity.Banana;
public interface BananaMapper {
/**
* 查询banana
*/
public List<Banana> select();
/**
* 新增banana
*/
public int insert(Banana banana);
/**
* 修改banana
*/
public int update(Banana banana);
/**
* 删除banana
*/
public int delete(int bid);
}
BananaMapper.xml(放置sql语句)代码如下:
<?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">
<mapper namespace="dao.BananaMapper">
<!-- 查询banana -->
<select id="select" resultType="Banana">
select * from banana
</select>
<!-- 新增banana -->
<insert id="insert" parameterType="int">
insert into banana(bname,bprice,bcolor,bsize) values(#{bname},#{bprice},#{bcolor},#{bsize})
</insert>
<!-- 修改banana -->
<update id="update" parameterType="int">
update banana set bname=#{bname},bprice=#{bprice},bcolor=#{bcolor},bsize=#{bsize} where bid=#{bid}
</update>
<!-- 删除banana -->
<delete id="delete" parameterType="int">
delete from banana where bid=#{bid}
</delete>
</mapper>
测试Test.java代码如下:
注:各项方法代码都已进行注释,单个解除各个注释分别使用,不要将将各项方法全部注释一并删除
package test;
import java.io.InputStream;
import java.util.List;
import java.util.Scanner;
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 dao.BananaMapper;
import entity.Banana;
public class Test {
public static void main(String[] args) {
//第一步:开始调用测试mybatis是否能用
String path="mybatis-config.xml";
Scanner input=new Scanner(System.in);
try {
//第二步:根据path创建输入流
InputStream is=Resources.getResourceAsStream(path);
//第三步:根据第二步的is来创建SqlSessionFactory
SqlSessionFactory factory=new SqlSessionFactoryBuilder().build(is);
//第四步:根据工厂来生产SqlSession
SqlSession session=factory.openSession();
BananaMapper bm=session.getMapper(BananaMapper.class);
/**
* 查询banana
*/
/*
List<Banana> list=bm.select();
for (Banana banana : list) {
System.out.println(banana.getBid()+"\t"+banana.getBname()+"\t"+banana.getBprice()+"\t"+banana.getBcolor()+"\t"+banana.getBsize());
}*/
/**
* 新增banana
*/
/*Banana banana=new Banana();
System.out.println("请输入你要新增的名称");
banana.setBname(input.next());
System.out.println("请输入你要新增的价格");
banana.setBprice(input.nextInt());
System.out.println("请输入你要新增的颜色");
banana.setBcolor(input.next());
System.out.println("请输入你要新增的尺寸");
banana.setBsize(input.nextInt());
int num=bm.insert(banana);
if (num>0) {
System.out.println("success");
session.commit();
}else {
System.out.println("fail");
}*/
/**
* 修改banana
*/
/*Banana banana=new Banana();
System.out.println("请输入你想要更改的id");
banana.setBid(input.nextInt());
System.out.println("请输入你想要更改名称为:");
banana.setBname(input.next());
System.out.println("请输入你想要更改价格为:");
banana.setBprice(input.nextInt());
System.out.println("请输入你想要更改颜色为:");
banana.setBcolor(input.next());
System.out.println("请输入你想要更改尺寸为:");
banana.setBsize(input.nextInt());
int num=bm.update(banana);
if (num>0) {
System.out.println("success");
session.commit();
}else {
System.out.println("fail");
}*/
/**
* 删除banana
*/
/*System.out.println("请输入你要删除的id");
int num=bm.delete(input.nextInt());
if (num>0) {
System.out.println("success");
session.commit();
}else {
System.out.println("fail");
}*/
} catch (Exception e) {
// TODO: handle exception
}
}
}
7、运行Test.java