博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
Mysql框架---HMySql
阅读量:5887 次
发布时间:2019-06-19

本文共 6473 字,大约阅读时间需要 21 分钟。

Java 数据库框架

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

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

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

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

下载链接

https://www.houxinlin.com/mysql-frame.jar

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

00 集成到项目中

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

image.png

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中没有空构造方法,可能会报一下错误

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

image.png

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

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

image.png

3:配置文件节点名错误

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

image.png

com.mysql.cj.jdbc.Driver
root
hxl495594..
localhost
homework1
true

4:少重要节点配置

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

image.png

转载于:https://www.cnblogs.com/HouXinLin/p/10994377.html

你可能感兴趣的文章
OSChina 周四乱弹 ——解读揭秘动弹惨案
查看>>
Java程序员集合框架面试题
查看>>
双飞翼布局和常见三角
查看>>
[10秒学会] - iOS 网络检测(如需要更详细 请用Reachability)
查看>>
理解Golang包导入
查看>>
category && extension 介绍
查看>>
Keil5可以打开Keil4的Project
查看>>
IntelliJ IDEA 2018.1.3 + jdk1.8 安装教程
查看>>
命令行输出java版本与环境变量配置的不一样问题解决
查看>>
你们终于喊出自己就是公有云了?
查看>>
帝国的征程——一个国家如何获得五大流氓的地位[转]
查看>>
Spring Security教程之自定义Spring Security默认的403页面
查看>>
WebMagic使用说明-基本的爬虫
查看>>
前嗅网络的ForeLib数据库介绍
查看>>
exchange 中继
查看>>
电脑蓝屏修复过程
查看>>
vmware ESXI 之重新注册虚拟机
查看>>
Apache Zeppelin安装及使用
查看>>
外网无法访问云主机HDFS文件系统
查看>>
hovercard头像悬浮卡效果
查看>>