使用原生BeetlSql

1 必须安装

jdk1.8、maven、idea、mysql。

2 使用idea创建一个maven项目。其pom文件的内容如下:



    4.0.0

    cn.ancony
    beetlsql
    1.0-SNAPSHOT

    
        
        
            com.ibeetl
            beetl-framework-starter
            1.1.40.RELEASE
        
        
        
            mysql
            mysql-connector-java
            6.0.5
        
    

    
    
        
            
                org.springframework.boot
                spring-boot-maven-plugin
            
        
    

3 编写应用程序。代码如下:

package cn.ancony.beetlsql;

import org.beetl.sql.core.*;
import org.beetl.sql.core.db.DBStyle;
import org.beetl.sql.core.db.MySqlStyle;

public class Application {
    //数据库的配置参数
    static String driver = "com.mysql.jdbc.Driver";
    static String url = "jdbc:mysql://127.0.0.1:3306/orm?useUnicode=true&characterEncoding=UTF-8";
    static String userName = "root";
    static String password = "root";

    public static void main(String[] args) throws Exception {
        //通过ConnectionSourceHelper获得ConnectionSource的引用。
        ConnectionSource source = ConnectionSourceHelper.getSimple(driver, url, userName, password);

        //连接的数据库是mysql,使用MySqlStyle。
        DBStyle mysql = new MySqlStyle();

        // 最后,创建一个SQLManager
        SQLManager sqlManager = new SQLManager(mysql,  source);

        gen(sqlManager);

    }

    //该方法会生成user的pojo对象到控制台。
    public static void gen(SQLManager sqlManager) throws Exception {
        sqlManager.genPojoCodeToConsole("user");
    }
}

首先定义好数据库访问的配置。driver、url、username、password。

第二步,使用ConnectionSourceHelper类的getSimple方法得到一个ConnectionSource对象。

第三步,创建DBStyle,因为我们使用的是mysq数据库,所以创建的对象是MySqlStyle。

第四步,使用ConnectionSource和DBStyle对象创建SQLManager对象。

第五步,使用创建的SQLManager对象尽情地操作sql语句。

3 创建数据库表。

在数据库orm中,创建user表。建表语句如下:

CREATE TABLE `user` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) COLLATE utf8_bin DEFAULT NULL COMMENT '名称',
  `department_id` int(11) DEFAULT NULL,
  `create_time` date DEFAULT NULL COMMENT '创建时间',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;

CREATE TABLE `department` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` varchar(45) COLLATE utf8_bin DEFAULT NULL,
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_bin;


INSERT INTO `user` VALUES (1, 'ancony', 1, '2018-7-18 11:52:41');
INSERT INTO `user` VALUES (1, 'conan', 1, '2018-7-18 11:52:41');
INSERT INTO `user` VALUES (1, 'david', 1, '2018-7-18 11:52:41');

INSERT INTO `department` VALUES ('1', '研发部门');

4 执行应用程序代码。

程序报错,错误内容简单如下:

Loading class `com.mysql.jdbc.Driver'. This is deprecated. The new driver class is `com.mysql.cj.jdbc.Driver'. The driver is automatically registered via the SPI and manual loading of the driver class is generally unnecessary.
Exception in thread "main" java.lang.RuntimeException: java.sql.SQLException: The server time zone value '�й���׼ʱ��' is unrecognized or represents more than one time zone. You must configure either the server or JDBC driver (via the serverTimezone configuration property) to use a more specifc time zone value if you want to utilize time zone support.

第一个问题:提示`com.mysql.jdbc.Driver'这个驱动过时了,使用`com.mysql.cj.jdbc.Driver'来代替。

所以直接将driver的值修改为符合要求的就可以了。

static String driver = "com.mysql.cj.jdbc.Driver";

第二个问题,提示时区错误,改为北京东八区的时间即可。

static String url = "jdbc:mysql://127.0.0.1:3306/orm?useUnicode=true&characterEncoding=UTF-8&serverTimezone=GMT%2B8";

SQLManager对象的genPojoCodeToConsole方法会自动生成POJO对象,并将这个结果输出到控制台,这个方法的参数就是数据库表的表名。

执行结果如下:

package com.test;
import java.math.*;
import java.util.Date;
import java.sql.Timestamp;

/* 
* 
* gen by beetlsql 2018-07-18
*/
public class user  {
	
	private Integer id ;
	private Integer department_id ;
	//名称
	private String name ;
	//创建时间
	private Date create_time ;
	
	public user() {
	}
	
	public Integer getId(){
		return  id;
	}
	public void setId(Integer id ){
		this.id = id;
	}
	
	public Integer getDepartment_id(){
		return  department_id;
	}
	public void setDepartment_id(Integer department_id ){
		this.department_id = department_id;
	}
	
	/**名称
	*@return 
	*/
	public String getName(){
		return  name;
	}
	/**名称
	*@param  name
	*/
	public void setName(String name ){
		this.name = name;
	}
	
	/**创建时间
	*@return 
	*/
	public Date getCreate_time(){
		return  create_time;
	}
	/**创建时间
	*@param  create_time
	*/
	public void setCreate_time(Date create_time ){
		this.create_time = create_time;
	}
	

}

 

你可能感兴趣的:(Java框架)