mysql -h_Mysql框架---HMySql

Java 数据库框架

在我学习java数据库框架的时候,第一个用的是Hibernate,但是到现在,我可能已经快忘记它了,毕竟快两年没有碰的东西,后来一直再用MyBatis.因为它简单.

但是本文不会介绍它们俩,介绍一个我的MySql框架,但是我却不知道叫它什么.暂时就叫他HMySql吧.

初心是增强对java 反射、注解的理解,所设计的,还有很多bug,望指出,源码后续会给出

用途:大一快课设了.很多同学还不会jdbc操作,希望可以借助它,完成课设

下载链接

由于是学生,没有钱去增加带宽,下载速度可能很慢,嗯~~~是很慢很慢的那种慢,还望耐心等待

00 集成到项目中

1:在项目根目录下新建lib文件夹,把jar包粘贴进去,右击jar包----Build Path---Add to Build Path

6e2c19a9acdc

image.png

6e2c19a9acdc

image.png

2:集成jar后,还需要在项目根目录下创建一个h-mysql.xml文件,用来配置数据库,配置如下

com.mysql.cj.jdbc.Driver

root

hxl495594..

localhost

homework1

true

(这是所有的配置信息了,它看起来很少)

01 创建数据表

DROP TABLE IF EXISTS `tb_user`;

CREATE TABLE `tb_user` (

`id` int(11) NOT NULL AUTO_INCREMENT COMMENT 'ID',

`user_name` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NOT NULL COMMENT '用户名',

`age` tinyint(4) UNSIGNED NULL DEFAULT NULL COMMENT '年龄',

`blance` decimal(9, 2) NULL DEFAULT NULL COMMENT '余额',

`is_vip` enum('Y','N') CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '是否VIP',

`register_timer` datetime(0) NULL DEFAULT NULL COMMENT '注册时间',

`girl_friend` varchar(255) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '女朋友名字',

`phone_number` varchar(11) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL COMMENT '手机号',

PRIMARY KEY (`id`) USING BTREE

) ENGINE = InnoDB AUTO_INCREMENT = 121 CHARACTER SET = utf8 COLLATE = utf8_general_ci ROW_FORMAT = Dynamic;

SET FOREIGN_KEY_CHECKS = 1;

02 编写Java bean

这里有几个需要注意的:

1:需要再类上加@TableName注解,用来映射表名

2:需要继承BeanSupport类,

3:主键上要增加@PrimaryKey

4:@FieldName表示字段对应的数据表中的列名

import com.houxinlin.annotation.FieldName;

import com.houxinlin.annotation.PrimaryKey;

import com.houxinlin.annotation.TableName;

import com.houxinlin.dbimpl.BeanSupport;

@TableName(tabName="tb_user")

public class UserMapp extends BeanSupport{

@PrimaryKey

@FieldName(fieldName="id")

private int id;

@FieldName(fieldName="user_name")

private String userName;

@FieldName(fieldName="age")

private int age;

@FieldName(fieldName="blance")

private BigDecimal blance;

@FieldName(fieldName="is_vip")

private String isVip;

@FieldName(fieldName="register_timer")

private String registerTimer;

@FieldName(fieldName="girl_friend")

private String grilFriendName;

public UserMapp() {

super();

}

@FieldName(fieldName="phone_number")

private String phoneNumber;

public UserMapp(int id, String userName, int age, BigDecimal blance, String isVip, String registerTimer,

String grilFriendName, String phoneNumber) {

super();

this.id = id;

this.userName = userName;

this.age = age;

this.blance = blance;

this.isVip = isVip;

this.registerTimer = registerTimer;

this.grilFriendName = grilFriendName;

this.phoneNumber = phoneNumber;

}

public int getId() {

return id;

}

public void setId(int id) {

this.id = id;

}

public String getUserName() {

return userName;

}

public void setUserName(String userName) {

this.userName = userName;

}

public int getAge() {

return age;

}

public void setAge(int age) {

this.age = age;

}

public BigDecimal getBlance() {

return blance;

}

public void setBlance(BigDecimal blance) {

this.blance = blance;

}

public String getIsVip() {

return isVip;

}

public void setIsVip(String isVip) {

this.isVip = isVip;

}

public String getRegisterTimer() {

return registerTimer;

}

public void setRegisterTimer(String registerTimer) {

this.registerTimer = registerTimer;

}

public String getGrilFriendName() {

return grilFriendName;

}

public void setGrilFriendName(String grilFriendName) {

this.grilFriendName = grilFriendName;

}

public String getPhoneNumber() {

return phoneNumber;

}

public void setPhoneNumber(String phoneNumber) {

this.phoneNumber = phoneNumber;

}

@Override

public String toString() {

return toJson(true);

}

}

03 测试

需要注意的是:

1:必须调用HDbManager.getInstance().init();进行初始化,如果没有创建h-mysql.xml文件.它可能会报异常.

import java.math.BigDecimal;

import java.text.SimpleDateFormat;

import java.util.Date;

import java.util.List;

import com.houxinlin.db.HDbManager;

import com.houxinlin.dbimpl.HxlDb;

import com.houxinlin.frame.FilterCondition;

public class Main {

private static SimpleDateFormat sdf = new SimpleDateFormat("yyyy-MM-dd hh:mm:dd");

public static void main(String[] args) {

/**

* 初始化数据库 你必须这么做!!!!

*/

HDbManager.getInstance().init();

UserMapp user = new UserMapp(0, "侯鑫林", 20, new BigDecimal("666"), "Y", sdf.format(new Date()), "乔羽祥",

"11111111111");

// 保存 必须继承BeanSupport,同比要有一个空构造方法

user.save();

/**

* 查找所有用户

*/

List lists = HxlDb.findAll(UserMapp.class);

System.out.println("全部用户---->" + lists);

//根据条件查找

UserMapp us=null;

us=HxlDb.findOneByCondition(UserMapp.class, new FilterCondition.Builder().addEquseToCodition("user_name", "侯鑫林").build());

System.out.println("查找指定姓名----->"+us);

//根据Id查找

us=HxlDb.findByPrimaryId(UserMapp.class, 119);

System.out.println("根据ID查找----->"+us);

//修改

us.setBlance(new BigDecimal("8888"));

HxlDb.upDataByPrimaryId(us, 118);

System.out.println("修改后的值----->"+HxlDb.findByPrimaryId(UserMapp.class, 119));

/**

* 根据条件删除年龄大于10岁的人

*/

HxlDb.deleteByCondition(UserMapp.class, new FilterCondition.Builder().addGreaterThan("age", 10).build());

System.out.println(HxlDb.findAll(UserMapp.class));

}

}

04 异常处理

1:如果java bean中没有空构造方法,可能会报一下错误

解决办法:增加空构造方法

6e2c19a9acdc

image.png

2:没有在项目根目录下新建h-mysql.xml文件

解决办法:建立h-mysql.xml

6e2c19a9acdc

image.png

3:配置文件节点名错误

解决办法:根据以下代码进行节点名检查

6e2c19a9acdc

image.png

com.mysql.cj.jdbc.Driver

root

hxl495594..

localhost

homework1

true

4:少重要节点配置

解决办法:根据错误的信息,检查配置文件中少写的节点

6e2c19a9acdc

image.png

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

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值