系统的简单数据库操作1
- 数据库模型
- 数据库的数据操作包
- Tables类
- Dao数据库操作类
java中简单的数据库操作
作为一个在学习过程的学生,想写个博客记录简单自己的学习过程,都是一些简单基础的东西,希望写这些能理清自己的思路
数据库模型
首先先建立一个包,可以命名为model包,里面是表的数据模型类
如这里建立一个库存的model类
// An highlighted block
var foo = 'bar';
package dao.model;
import java.io.Serializable;
public class TbKucun implements Serializable {
private String id;// 商品编号
private String spname;// 商品名称
private String jc;// 商品简称
private String cd;// 产地
private String gg;// 商品规格
private String bz;// 包装
private String dw;// 商品计量单位
private Double dj;// 单价
private Integer kcsl;// 库存数量
public TbKucun() {// 缺省构造函数
}
public TbKucun(String id) {// 最小构造函数(主键)
this.id = id;
}
public TbKucun(String id, String spname, String jc, String cd, String gg, String bz, String dw, Double dj,Integer kcsl) {// 完整构造函数
this.id = id;
this.spname = spname;
this.jc = jc;
this.cd = cd;
this.gg = gg;
this.bz = bz;
this.dw = dw;
this.dj = dj;
this.kcsl = kcsl;
}
// 使用Getters and Setters方法将库存信息类的私有属性封装起来
public String getId() {
return this.id;
}
public void setId(String id) {
this.id = id;
}
public String getSpname() {
return this.spname;
}
public void setSpname(String spname) {
this.spname = spname;
}
public String getJc() {
return this.jc;
}
public void setJc(String jc) {
this.jc = jc;
}
public String getCd() {
return this.cd;
}
public void setCd(String cd) {
this.cd = cd;
}
public String getGg() {
return this.gg;
}
public void setGg(String gg) {
this.gg = gg;
}
public String getBz() {
return this.bz;
}
public void setBz(String bz) {
this.bz = bz;
}
public String getDw() {
return this.dw;
}
public void setDw(String dw) {
this.dw = dw;
}
public Double getDj() {
return this.dj;
}
public void setDj(Double dj) {
this.dj = dj;
}
public Integer getKcsl() {
return this.kcsl;
}
public void setKcsl(Integer kcsl) {
this.kcsl = kcsl;
}
public String toString() {
return getSpname();
}
}
- 表中的属性对应数据库表中的对应表的列;
- 创建构造方法
有缺省构造方法,参数为主键的构造方法,完整的构造方法
3.用getXXX和setXXX的方法将私有属性封装起来
数据库的数据操作包
有了数据模型,可以进行数据操作类
java的思想是从小到大,所以先建立表的列类
##Colums类
package dao;
public class Columns {
private String name;// 列名
private String type;// 字段类型
private boolean isNull;// 是否可以为null
private boolean isKey;// 是否是主键
private boolean isIncrement;// 是否自增
public Columns(){
super();
}
public Columns(String name,String type,boolean isNull,boolean isKey,boolean isIncrement){
this.name=name;
this.type=type;
this.isNull=isNull;
this.isKey=isKey;
this.isIncrement=isIncrement;
}
public String getName(){
return name;
}
public void setName(String name){
this.name=name;
}
public String getType(){
return type;
}
public void setType(String type){
this.type=type;
}
public boolean getisNull(){
return isNull;
}
public void setisNull(boolean isNull){
this.isNull=isNull;
}
public boolean getisKey(){
return isKey;
}
public void setisKey(boolean isKey){
this.isKey=isKey;
}
public boolean getisIncrement(){
return isIncrement;
}
public void setIncrement(boolean isIncrement){
this.isIncrement=isIncrement;
}
public String toString(){
return "Columns [name="+name+"type="+type+
"isNull="+isNull+"isKey="+isKey+
"isIncrement="+isIncrement;
}
}
1.属性包含列名,字符类型 ,是否为空,是否为主键,是否自增
还可以增加其他约束性条件
2.构造函数
3.getXXX和setXXX方法将私有方法封装起来
Tables类
package com.lzw.dao;
import java.util.ArrayList;
public class Tables {
private String name;
private ArrayList<Columns> columns=new ArrayList<Columns>();
public Tables(){
super(); //?
}
public Tables(String name,ArrayList<Columns> columns){
super(); //?
this.name=name;
this.columns=columns;
}
public String getName(){
return name;
}
public void setname(String name){
this.name=name;
}
public ArrayList<Columns> getcolumns(){
return columns;
}
public void setcolumns(ArrayList<Columns> columns){
this.columns=columns;
}
}
1.表类的属性包含表名,和Columns的集合类,相当于一个数组,每个数组的一列为一个Columns类
2.构造方法
3.用getXXX和setXXX类将私有属性封装起来
Dao数据库操作类
有了Columns类和Tables类就可以进行数据库操作类了
实现数据库的备份,恢复,插入功能等
package com.lzw.dao;
import java.io.BufferedWriter;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import java.io.OutputStreamWriter;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;
import java.text.SimpleDateFormat;
import java.util.ArrayList;
import java.util.Date;
import java.util.LinkedList;
import javax.swing.JOptionPane;
public class Dao {
protected static String dbClassName="com.mysql.jdbc.Driver"; //sql驱动
protected static String dbUrl="jdbc:mysql://127.0.0.1:3306/db_jxcms"; //sql的url
protected static String dbUser="root"; //用户名
protected static String dbPwd="root"; //密码
protected static String dbName="db_jxcms"; //数据库名
protected static String second=null;
public static Connection conn=null; //数据库连接对象
static{//静态初始化Dao类
try {
if(conn==null){
Class.forName(dbClassName).newInstance(); //Class.forName()显式地加载JDBC驱动程序
conn=DriverManager.getConnection(dbUrl, dbUser, dbPwd);
/*drivemanager 加载驱动程序类
建立连接
*/
}
} catch (InstantiationException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (IllegalAccessException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} catch (ClassNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
JOptionPane.showMessageDialog(null, "请将MySQL的JDBC驱动包复制到lib文件夹中");
System.exit(-1);
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
private Dao(){ //封闭构造方法,禁止创建dao类的实例对象
}
//下面包含数据库的备份,恢复,插入,删除,读取,修改功能
//各种方法将在后续博客给出
}
目前在自学看Java书,用书为java从入门到精通,以上内容可参考此书,对于初学者帮助很大