java 数据库(java如何方便的操作数据库)

zzjSqlHandle(操作数据库很烦?来试试它?)

zhuzhengjundev
gitee地址:https://gitee.com/Zhuzhengjuna/j-sql-handle

简介:

        你只需要引入一个jar包(目前支持mysql和sqlserver),配置数据库信息之后,然后准备一个实体类传入对应的方法中,即可对数据表进行增,删,改,查,分页查,当然,你也可以写sql语句传入方法中。除此之外,你还可以使用事务,在对所有sql操作成功之后一起提交事务即操作成功,否则回滚掉事务,让之前的sql操作失效。

一:来看看如何配置吧!

       ① 配置的话很简单,你只需要把jSqlHandle.jar包放在对应的lib目录下,然后在WebContent目录下新建一个文件夹名为:config,然后在config文件夹里新建一个dbconfig.properties文件,切记文件的名字和后缀名要一模一样,否则连接不上数据库
       ② 在上述正确的路径下新建文件夹和文件之后,你需要在dbconfig.properties文件里编写你的数据库配置内容,需要四个变量,分别为driverClassName(驱动)、db_url(数据库地址)、db_name(数据库连接名)、db_password(数据库连接密码)。
       实例1(mysql版):

		driverClassName=com.mysql.cj.jdbc.Driver
        db_url=jdbc:mysql://localhost:3306/my_store?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC
        db_name=root
        db_password=123456

       实例2(sqlserver版):

		driverClassName=com.microsoft.sqlserver.jdbc.SQLServerDriver
        db_url=jdbc:sqlserver://127.0.0.1:1433;DatabaseName=TEST
        db_name=sa
        db_password=123456

       你可以将以上四行代码复制粘贴到你新建的dbconfig.properties文件中,然后修改后面对应你数据库信息的值。

       当然,如果你不想配置可以直接看看 使用说明,在使用的时候传这些参数

二:来看看使用说明吧!

1、使用该jar包你只需要知道JDbHandle

       ①、JDbHandle是主要的操作数据表的类,只有它可操作数据表,来说说怎么使用吧,首先去new一个它,这个不用多说吧,不过在new它的同时,你得传入一个参数Boolean isOpenTran,看名字和类型应该可以猜出大概吧,是否自动提交。当传入的参数为true,即你开启了一个事务,在你对数据表操作的增删改等事情之后,它其实都没有真正生效,之后当你操作完所有逻辑之后,再调用该类的commit方法,即可生效,不过你也可以选择调用rollback方法,即把之前的增删改全部撤回,一般只有当同时操作有关联的多张表时才会传true,否则传入false就好,当传入false,即你对数据表操作的任何操作都是即时生效的,你也不需要在操作完逻辑之后调用commit或者rollback方法。不过最后要说的是,不过传入的是true还是false,就算你只new了一次它,没有调用里面的方法,你也需要调用一个方法,那就是stopConn,即关闭数据库连接,因为你每new一个JDbHandle类,即连接数据库一次。

       注意如果你上面的配置不会使用或者你的项目没有WebContent目录,你可以直接通过new JDbHandle(driverClassName, db_url, db_name, db_password)或者new JDbHandle(isOpenTran, driverClassName, db_url, db_name, db_password)去使用它

2、你还需要知道一件事

       在以上配置配好之后,简单的看一下使用说明后,你还需要做一件事:
       ①、那就是你需要根据数据表的名称,表内各字段的名称来创建实体类(名称的字母必须一模一样,不区分大小写)
       ②、当然,如果你直接写sql字段串也可以,同样也是调用下面的增删改查方法(直接传入即可)
       ③、做完这些之后你就可以调用增删改查方法了,下面的有对增删改查四种方法进行介绍…

3、如何插入insert

        JDbHandle dbHandle = new JDbHandle(false);
        //该实体类后面的参数作为插入的字段数据值(注:切记该实体类的类名和成员变量名字要与数据表对应,不能缺少或添加字段,不区分大小写)
        Users users = new Users("value2","value3","value4","value5");
        int index = dbHandle.insert(users); //大于0代表插入成功
        dbHandle.stopConn();

4、如何删除dalete

		JDbHandle dbHandle = new JDbHandle(false);
        //该实体类后面的参数作为删除的字段条件值(注:切记该实体类的类名和成员变量名字要与数据表对应,不能缺少或添加字段,不区分大小写)
        Users users = new Users("value2","value3","value4","value5");
        int index = dbHandle.dalete(users); //大于0代表删除成功
        dbHandle.stopConn();

5、如何更新update

		JDbHandle dbHandle = new JDbHandle(false);
        //该实体类后面的参数作为更新的字段数据值(注:切记该实体类的类名和成员变量名字要与数据表对应,不能缺少或添加字段,不区分大小写)
        Users users = new Users("value2","value3","value4","value5");
        //不过在调用更新方法的时候需要多传入一个参数,即你需要使用哪些字段名称作为更新条件,可多个条件,中间用英文逗号隔开,作为字符串传入即可
        //当然,如果你直接写sql字符串,就不需要传入第二个参数
        int index = dbHandle.update(users,"userName,userPwd");//大于0代表更新成功
        dbHandle.stopConn();

6、如何查询select

		JDbHandle dbHandle = new JDbHandle(false);
        //该实体类后面的参数作为查询的字段条件值(注:切记该实体类的类名和成员变量名字要与数据表对应,不能缺少或添加字段,不区分大小写)
        Users users = new Users("value2","value3","value4","value5");
        //第一个参数为查询表的实体类,各个字段代表查询条件,第二个参数表示是否模糊查询,第三个参数代表查询到的数据转成对应的实体类型
        List<Users> userList = dbHandle.select(users,false, Users.class);
        或者
        //第一个参数为查询表的实体类,各个字段代表查询条件,第二个参数表示是否模糊查询,第三个参数查询排序的字段,第四个参数排序方式(是否正序),第五个参数代表查询到的数据转成对应的实体类型
        List<Users> userList = dbHandle.select(users,false,"key1,key2",true, Users.class);
        dbHandle.stopConn();

7、如何查询一条数据selectFirst

		JDbHandle dbHandle = new JDbHandle(false);
        //该实体类后面的参数作为查询的字段条件值(注:切记该实体类的类名和成员变量名字要与数据表对应,不能缺少或添加字段,不区分大小写)
        Users users = new Users("value2","value3","value4","value5");
        //第一个参数为查询表的实体类,各个字段代表查询条件,第二个参数表示是否模糊查询,第三个参数代表查询到的数据转成对应的实体类型
        Users user = dbHandle.selectFirst(users,false, Users.class);
        或者
        //第一个参数为查询表的实体类,各个字段代表查询条件,第二个参数表示是否模糊查询,第三个参数查询排序的字段,第四个参数排序方式(是否正序),第五个参数代表查询到的数据转成对应的实体类型
        Users user2 = dbHandle.selectFirst(users,false,"key1,key2",true, Users.class);
        dbHandle.stopConn();

7、如何查询单行单列一个值selectSingle

		JDbHandle dbHandle = new JDbHandle(false);
        String gender = (String)dbHandle.selectSingle("SELECT gender FROM Users WHERE NAME = '小明'");
        dbHandle.stopConn();

6、如何分页查询selectPage

		JDbHandle dbHandle = new JDbHandle(false);
        //该实体类后面的参数作为查询的字段条件值(注:切记该实体类的类名和成员变量名字要与数据表对应,不能缺少或添加字段,不区分大小写)
        Users users = new Users("value2","value3","value4","value5");
        //不过在调用分页查询方法的时候需要多传入五个参数,即是否模糊查询,查询排序的字段,以及排序方式(是否正序),你要查询的页码,还有每页显示的数据条数,查询到的数据转成对应的实体类型
        //当然,如果你直接写sql字符串,只需要传入两个参数,即你要查询的页码,还有每页显示的数据条数,不过这里要注意一点,传入的sql字符串结尾不要加封号
        //这里selectPage方法传参的意思按照每页10条数据且按照 row_id 和  user_name 字段倒叙查询出第一页的数据,
        JPageData<Users> jPageData = dbHandle.selectPage(users2,false,"  row_id , user_name ",false,1,10, Users.class);
        jPageData.pageIndex //当前页
        jPageData.pageSize //每页数量
        jPageData.pageAll //总页数
        jResponse.total; //总数量
        jResponse.data; //查询到的数据
        dbHandle.stopConn();

7、如果你不想通过实体类操作,或者说实体类满足不了你的需求,你可以自己编写sql语句,以字符串的格式传入上面五种方法中传实体类的位置

		JDbHandle dbHandle = new JDbHandle(false);
        dbHandle.insert("INSERT INTO table_name (列1, 列2,...) VALUES (值1, 值2,....)");
        dbHandle.delete("DELETE FROM 表名称 WHERE 列名称 = 值 AND 列名称 = 值");
        //记住更新方法如果使用实体类得传第二个参数,即你需要使用哪些字段名称作为更新条件,可多个条件,中间用逗号隔开,作为字符串传入即可;这里直接写sql不需要传
        dbHandle.update("UPDATE 表名称 SET 更新列名称 = 新值 WHERE 条件列名称 = 条件值");
        dbHandle.select("SELECT 列名称 FROM 表名称 WHERE 条件列名称 = 条件值",Entity.class);
        dbHandle.selectPage("SELECT 列名称 FROM 表名称 WHERE 条件列名称 = 条件值",1,10,Entity.class);//注意这里传参的sql语句结尾不要加封号

8、工具类 JTool


 	//使用它可以直接获取一个uuid的值,返回类型为String。
	JTool.getUuid()
	
	//使用它可以直接获取当前系统时间,返回类型为String。
	JTool.getDate()

三:最后附上总体的使用案例吧…

import zhuzhengjun.handle.JDbHandle;
import zhuzhengjun.handle.JResponse;

public class Main {

	public static void main(String[] args) {
		JDbHandle jDbHandle = getJDbHandle();
		
		//使用sql增加
		int index = jDbHandle.insert("insert into bysj (name,qq,type,time) values ('34235','42145','53434','5342');");
		System.out.println("增加了 " + index + " 条数据");
		//使用sql增加
		
		//使用实体类增加
		Bysj bysj = new Bysj();//Bysj.class与 bysj 表 字段一致,不区分大小写
		bysj.name = "2420";
		bysj.qq = "213450";
		bysj.type = "22420";
		bysj.time = "2420";
		int index = jDbHandle.insert(bysj);
		System.out.println("增加了 " + index + " 条数据");
		//使用实体类增加
		
		//使用sql删除
		int index= jDbHandle.delete("delete from bysj where id = '20';");
		System.out.println("删除了 " + index + " 条数据");
		//使用sql删除
		
		//使用实体类删除
		bysj = new Bysj();
		bysj.id = "20"; //使用  id = 20 作为删除条件
		int index= jDbHandle.delete(bysj);
		System.out.println("删除了 " + index + " 条数据");
		//使用实体类删除
		
		//使用sql更新
		int index = jDbHandle.update("update bysj set name = '测试'  where id = '20';");
		System.out.println("更新了 " + index + " 条数据");
		//使用sql更新
		
		//使用实体类更新
		bysj = new Bysj();
		bysj.id = "20"; //需要更新哪个字段就加哪个
		bysj.name = "测试"; //需要更新哪个字段就加哪个
		int index = jDbHandle.update(bysj, "id");//第二个参数是作为条件的,例如这里将 id = 20 作为条件
		System.out.println("更新了 " + index + " 条数据");
		//使用实体类更新
		
		//使用sql查询
		List<Bysj> bysjList = jDbHandle.select("select * from bysj where id = '1'", Bysj.class);
		System.out.println(bysjList.get(0).name);
		//使用sql查询
		
		//使用实体类查询
		bysj = new Bysj();
		bysj.id = "1"; //使用  id = 1 作为查询条件
		List<Bysj> bysjList = jDbHandle.select(bysj, true, Bysj.class); //第二个参数为true是模糊查询,false则是等于
		System.out.println(bysjList.get(0).name);
		//使用实体类查询
		
		//查询单行单列一个值
		String str = (String)jDbHandle.selectSingle("SELECT GENDER FROM user WHERE NAME = '小明'");
		//查询一条数据
		User user = jDbHandle.selectFirst("SELECT * FROM user WHERE NAME = '小明'", Sm_User.class);
		
		jDbHandle.stopConn();
	}
	
	private static JDbHandle getJDbHandle() {
		return new JDbHandle("com.mysql.cj.jdbc.Driver", 
							"jdbc:mysql://localhost:3306/a_bysj?useUnicode=true&characterEncoding=utf-8&serverTimezone=UTC",
							"root",
							"123456");
	}
}
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值