发表于: 2017-05-17 21:18:24
1 1458
Task1第三天(2017年5月17日)
今日计划
昨天晚上学习了一下JDBC不是太明白,根据示例一葫芦画瓢完成了连接数据库,成功输出了test数据库中apply表中的信息,今天继续学习JDBC,学会JDBC的增加、删除、修改操作,争取完成编写DAO, 还有时间就继续学习Junit与Spring
师兄给昨天日报点评“建议可以试着创建一个最简单的java项目,自己一个个文件夹新建,让程序执行。” 今天也来试试。
十七.编写DAO,注意写清楚Interface和Impl,注意遵守命名规范。
编写DAO前,选学习JDBC编程。
首先导入JAR包
下载mysql-connector-java-6.0.6.zip http://www.mysql.com/downloads/connector/j
解压得到mysql-connector-java-6.0.6-bin.jar
在Project_1->src/main/java 中创建一个新的Packge JDBC
并创建一个新的Class Test
Project_1右键->Properties->Java Build Path->Libraries->Add JARs(添加相对地址) 到目录中选择mysql-connector-java-6.0.6-bin.jar 点击OK 添加完成
连接MySQL
以下是我按照网上示例编写的查看结果代码
package jdbc;
import java.sql.*;// import所需要的包
public class Test {
// JDBC 驱动名及数据库 URL
static final String JDBC_DRIVER = "com.mysql.cj.jdbc.Driver";
static final String DB_URL = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
//数据库的用户名与密码
static final String USER = "root";
static final String PASS = "920901";
public static void main (String[] args) {
Connection conn = null;
Statement stmt = null;
try{
//注册 JDBC 驱动
Class.forName("com.mysql.cj.jdbc.Driver");
//打开连接
conn = DriverManager.getConnection(DB_URL,USER,PASS);
System.out.println("连接数据库。。。");
//执行查询
System.out.println("创建Statement。。。");
stmt = conn.createStatement();
String sql;
sql = "SELECT id,name,qq,profession,join_date,gschool,daily_url,online_class,oath,resource FROM apply";
ResultSet rs = stmt.executeQuery(sql);
//从结果集中提取数据
while(rs.next()){
//通过字段检索
int id = rs.getInt("id");
String name = rs.getString("name");
String qq = rs.getString("qq");
String profession = rs.getString("profession");
Long join_date = rs.getLong("join_date");
String gschool = rs.getString("gschool");
String daily_url = rs.getString("daily_url");
String online_class = rs.getString("online_class");
String oath = rs.getString("oath");
String resource = rs.getString("resource");
//输出数据
System.out.print("ID:" + id);
System.out.print(",姓名:" + name);
System.out.print(",QQ:" + qq);
System.out.print(",修真类型:" + profession);
System.out.print(",预计入学时间:" + join_date);
System.out.print(",毕业院校:" + gschool);
System.out.print(",日报链接:" + daily_url);
System.out.print(",线上学号:" + online_class);
System.out.print(",立愿:" + oath);
System.out.println(",从何处了解到的修真院:" + resource);
}
//完成后关闭
rs.close();
stmt.close();
conn.close();
}catch(SQLException se){
//处理 JDBC 错误
se.printStackTrace();
}catch(Exception e){
//处理 Class.forName 错误
e.printStackTrace();
}finally{
// 关闭资源
try{
if(stmt!=null) stmt.close();
}catch(SQLException se2){
}//什么都不做
try{
if(conn!=null) conn.close();
}catch(SQLException se){
se.printStackTrace();
}
}
System.out.println("Goodbye!");
}
}
在模仿代码的过程中发现两个问题
一、我所参照的示例中注册驱动是这样写的:
Class.forName("com.mysql.jdbc.Driver");
在eclipse中编译运行时提示“com.mysql.jdbc.Driver”这个写法已经弃用,现在要写成“com.mysql.cj。jdbc.Driver””
经过查询由于我使用的驱动是与之前版本有区别。
二、上面代码修正后,编译运行提示“时区错误”等等一大堆。
经过查找资料了解到在连接地址后加上?serverTimezone=UTC即可。
将数据库地址修改如下:
static final String DB_URL = "jdbc:mysql://localhost:3306/test?serverTimezone=UTC";
再次编译运行成功输出了apply表中的数据,如下:
下面先尝试手动创建一个Maven工程
Maven项目目录结构:
src/main/Java : java源文件存放位置
src/main/resource :java源文件用到的resource资源,如配置文件等
src/test/java : 测试代码源文件存放位置
src/test/resource : 测试代码配置文件存放位置
1、手动新建文件夹
firstmaven
src
main
java
resources
test
java
resources
Pom.xml
1、编写pom.xml
2、创建java文件 及javatest文件所使用的包为test
3、执行mvn compile 进行编译
在pom.xml中添加
<properties>
<project.build.sourceEncoding> UTF-8 </project.build.sourceEncoding></properties>
再次编译
4、测试项目 mvn test
5、打包项目 mvn package
target文件下有了jar包
6、清空命令 mvn clean
Target文件没了。
7、安装命令 mvn install
8、mvn -v:查看maven版本,包括jdk使用情况。
mvn compile:编译项目,项目根目录生成target文件夹,里面存放classes项目编译的字节码文件,即项目运行的classpath。
mvn test:运行测试用例,同时在target文件夹下生成测试classpath和测试报告。
mvn package:将项目打包到target文件夹。
mvn clean:删除target文件夹(target存放的是项目编译的字节码文件、测试字节码文件、测试报告及打包的项目)。
mvn install:安装jar包到本地仓库中,会先执行test命令,再执行install命令。
继续学习JDBC
参照示例,学习了JDBC创建数据库,创建表,插入数据,查找数据,更新数据,删除数据,删除表,删除数据库,并顺便学习了一下WHERE子句,LIKE子句,以及排序。
明日计划
学习编写DAO
遇到问题
今天遇到的问题层出不穷,好在都找到各种资料解决了。
收获
学习了手动创建Maven工程,JDBC创建数据库,创建表,插入数据,查找数据,更新数据,删除数据,删除表,删除数据库,并顺便学习了一下WHERE子句,LIKE子句,以及排序。
评论