一,使用MyBatis实现条件增删改查:
1,在java中创建一个Web Project:
2,在把配置文件放在WEB-INF的lib里面
3,在创建resources来连接数据库库:
创建mybatus-confing和database.properties就不会乱码:
<!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="poer"/>
</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/GoodsMapper.xml"/>
</mappers>
</configuration>
driver=com.mysql.jdbc.Driver
url=jdbc:mysql://localhost:3306/goods?useUnicode=true&characterEncoding=utf-8
username=自己的账号
password=自己的密码
4,在src里面写还好要用的dao,实体类,测试类:
5,Dao里面的GoodsMapper.xml是给来写sql语句的GoodsMapper.java是抽象类写方法的:
(GoodsMapper.java)
public interface GoodsMapper {
public List<Goods>chaxun();//查询
public int delete(int gid );//删除
public int update(Goods xg);//修改
public int insert(Goods xz);//新增
//模糊查询
public List<Goods>fuzzy(@Param("gid")int gid,@Param("gname")String gname,@Param("gprice")double gprice ,@Param("gcolor")String gcolor,@Param("gscore")int gscore);
public List<Goods> page(@Param("i")int gegin,@Param("j")int size);//分页
}
(GoodsMapper.xml)
<!DOCTYPE mapper
PUBLIC "-//mybatis.org//DTD Mapper 3.0//EN"
"http://mybatis.org/dtd/mybatis-3-mapper.dtd">
<mapper namespace="dao.GoodsMapper" >
<!--查询 -->
<select id="chaxun" resultType="entity.Goods">
select * from goods
</select>
<!--删除 -->
<delete id="delete" parameterType="int">
delete from goods where gid=#{gid}
</delete>
<!--修改 -->
<update id="update" parameterType="int" >
UPDATE goods SET gname=#{gname},gprice=#{gprice},gcolor=#{gcolor},gscore=#{gscore} WHERE gid=#{gid}
</update>
<!--新增 -->
<insert id="insert" parameterType="int" >
INSERT INTO goods (gname,gprice,gcolor,gscore) VALUES(#{gid},#{gname},#{gprice},#{gcolor},#{gscore})
</insert>
<!-- 模糊查询 -->
<select id="fuzzy" resultType="entity.Goods">
select * from goods
<where>
<if test="gname!=''">
gname like concat('%',#{gname},'%')
</if>
<if test="gprice!=0">
and gprice=#{gprice}
</if>
<if test="gcolor!=''">
and gcolor like concat('%',#{gcolor},'%')
</if>
<if test="gscore!=0">
and gscore=#{gscore}
</if>
</where>
</select>
<!--分页 -->
<select id="page" resultType="entity.Goods">
select * from goods LIMIT #{i},#{j}
</select>
</mapper>
6,实体类entity:
public class Goods {
private int gid;
public int getGid() {
return gid;
}
public void setGid(int gid) {
this.gid = gid;
}
public String getGname() {
return gname;
}
public void setGname(String gname) {
this.gname = gname;
}
public double getGprice() {
return gprice;
}
public void setGprice(int gprice) {
this.gprice = gprice;
}
public String getGcolor() {
return gcolor;
}
public void setGcolor(String gcolor) {
this.gcolor = gcolor;
}
public int getGscore() {
return gscore;
}
public void setGscore(int gscore) {
this.gscore = gscore;
}
private String gname;
private int gprice;
private String gcolor;
private int gscore;
}
7,最后一步是测试类写代码:
public class Test {
/**
* @param args
*/
static String path="goods.xml";
static InputStream is=null;
static SqlSessionFactory factory=null;
static SqlSession session=null;
static int count=0;
public static void main(String[] args) {
// TODO Auto-generated method stub
do {
Scanner input=new Scanner(System.in);
System.out.println("1.查询所有");
System.out.println("2.删除");
System.out.println("3.修改");
System.out.println("4.添加");
System.out.println("5.模糊查询");
System.out.println("6.分页");
System.out.println("0.退出");
System.out.println("请输入");
int a=input.nextInt();
switch (a) {
case 1:
getAll();
break;
case 2:
del();
break;
case 3:
xiu();
break;
case 4:
add();
break;
case 5:
mohu();
break;
case 6:
fenye();
break;
case 0:
System.exit(0);
break;
default:
System.out.println("输入错误");
break;
}
} while (true);
}
public static void getAll(){
try {
is=Resources.getResourceAsStream(path);
factory=new SqlSessionFactoryBuilder().build(is);
session=factory.openSession();
GoodsMapper a=session.getMapper(GoodsMapper.class);
List<Goods>list=a.chaxun();
for (Goods goods : list) {
System.out.println(goods.getGid()+"\t"+goods.getGname()+"\t"+goods.getGprice()+"\t"+goods.getGcolor()+"\t"+goods.getGscore());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void del(){
try {
is=Resources.getResourceAsStream(path);
factory=new SqlSessionFactoryBuilder().build(is);
session=factory.openSession();
GoodsMapper a=session.getMapper(GoodsMapper.class);
Scanner input=new Scanner(System.in);
System.out.println("请输入要删除的编号");
int b=input.nextInt();
count=a.delete(b);
session.commit();
if (count>0) {
System.out.println("删除成功");
}else{
System.out.println("删除失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void xiu(){
try {
is=Resources.getResourceAsStream(path);
factory=new SqlSessionFactoryBuilder().build(is);
session=factory.openSession();
GoodsMapper a=session.getMapper(GoodsMapper.class);
Scanner input=new Scanner(System.in);
Goods b=new Goods();
System.out.println("请输入要修改的数据");
b.setGid(input.nextInt());
System.out.println("请输入新的姓名");
b.setGname(input.next());
System.out.println("请输入新的价格");
b.setGprice(input.nextInt());
System.out.println("请输入新的颜色");
b.setGcolor(input.next());
System.out.println("请输入新的评分");
b.setGscore(input.nextInt());
count=a.update(b);
session.commit();
if (count>0) {
System.out.println("修改成功");
}else {
System.out.println("修改失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void add(){
try {
is=Resources.getResourceAsStream(path);
factory=new SqlSessionFactoryBuilder().build(is);
session=factory.openSession();
GoodsMapper a=session.getMapper(GoodsMapper.class);
Scanner input=new Scanner(System.in);
Goods b=new Goods();
System.out.println("请输入姓名");
b.setGname(input.next());
System.out.println("请输入价格");
b.setGprice(input.nextInt());
System.out.println("请输入颜色");
b.setGcolor(input.next());
System.out.println("请输入评分");
b.setGscore(input.nextInt());
count=a.insert(b);
session.commit();
if (count>0) {
System.out.println("添加成功");
}else {
System.out.println("添加失败");
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void mohu(){
try {
is=Resources.getResourceAsStream(path);
factory=new SqlSessionFactoryBuilder().build(is);
session=factory.openSession();
GoodsMapper a=session.getMapper(GoodsMapper.class);
Scanner input=new Scanner(System.in);
System.out.println("请输入你的ID:");
int id=input.nextInt();
System.out.println("请输入要查询的姓名");
String b=input.next();
System.out.println("请输入要查询的价格");
int c=input.nextInt();
System.out.println("请输入要查询的颜色");
String d=input.next();
System.out.println("请输入要查询的评分");
int e=input.nextInt();
List<Goods>list=a.fuzzy(id, b, c, d, e);
for (Goods goods : list) {
System.out.println(goods.getGid()+"\t"+goods.getGname()+"\t"+goods.getGprice()+"\t"+goods.getGcolor()+"\t"+goods.getGscore());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
public static void fenye(){
try {
is=Resources.getResourceAsStream(path);
factory=new SqlSessionFactoryBuilder().build(is);
session=factory.openSession();
GoodsMapper a=session.getMapper(GoodsMapper.class);
Scanner input=new Scanner(System.in);
System.out.println("请输入要页数");
int b=input.nextInt();
System.out.println("请输入个数");
int c=input.nextInt();
List<Goods>list=a.page((b-1)*c, c);
for (Goods goods : list) {
System.out.println(goods.getGid()+"\t"+goods.getGname()+"\t"+goods.getGprice()+"\t"+goods.getGcolor()+"\t"+goods.getGscore());
}
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
运行结果是: