发表于: 2018-04-02 22:06:06
1 614
今天完成的事情:
JDBC连接数据库。
1.连接数据库,这里用以前任务的数据库或者可以自己写一个。(这里需要注意数据命名)
首先新建一个数据库
2.导入MySQL的jar。
这里两个办法。
1.http://www.mysql.com/downloads/connector/j在这里下载jar,然后把包导入项目文件夹下,或者同IDEA导入。(很麻烦不推荐使用)
2.pom添加依赖。(推荐这种)
在POM里添加这段代码IDEA会自动帮我们下载。
然后新建这样的文件名称
3. 新建一个为task的数据库名。
package DAO;//"对应项目名称"
import java.sql.Connection;
import java.sql.DriverManager;
public class MysqlDemo {//对应文件名称
//mysql数据库驱动,固定写法。
private static final String driver = "com.mysql.jdbc.Driver";
private static final String url="jdbc:mysql://localhost:3306/task";
private static final String username="root";//数据库的用户名
private static final String password="";//数据库的密码:这个是自己安装数据库的时候设置的,每个人不同。
private static Connection conn=null; //声明数据库连接对象
//静态代码块负责加载驱动
static
{
try
{
Class.forName(driver);
}
catch(Exception ex)
{
ex.printStackTrace();
}
}
//单例模式返回数据库连接对象,供外部调用
public static Connection getConnection() throws Exception
{
if(conn==null)
{
conn = DriverManager.getConnection(url, username, password); //连接数据库
return conn;
}
return conn;
}
//写main方法测试是否连接成功,可将本类运行为Java程序先进行测试,再做后续的数据库操作。
public static void main(String[] args) {
try
{
Connection conn = MysqlDemo.getConnection();
if(conn!=null)
{
System.out.println("数据库连接正常!");
}
else
{
System.out.println("数据库连接异常!");
}
}
catch(Exception ex)
{
ex.printStackTrace();
}}
}
注意!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!
/**
* 如下是连接数据库的URL地址,
* 其中,"jdbc:mysql://" 为固定写法
* "localhost:3306"是连接本机数据库时的写法,为什么好奇是3306看看自己的本地数据连接名称。
* "task"是数据库的名称,一定要根据自己的数据库更改。
* "?useUnicode=true&characterEncoding=UTF-8" 指定编码格式,无需时可省略,
* 即地址直接为:"jdbc:mysql://localhost:3306/shopping"
*/
如果你在新建数据库时没有选择字符集,那么需要加上上段代码。
选择好了就不需要那段代码了。
最后输出结果:
明天计划的事情:
学习springIOC的原理以及操作
实现JDBCTemplate,完成对数据库的操作,过程中将对象的创建交给spring完成,Dao接口和实现类分开
创建表
package service;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Connection;
import java.sql.Statement;
public class student{
public static void main(String[] args) throws Exception{
Connection conn = null;
String sql;
// 执行数据库操作之前要在数据库管理系统上创建一个数据库,名字自己定,
String url = "jdbc:mysql://localhost:3306/stn?"
+"user=root&password=&useUnicoe=true&characterEncoding=UTF8";
try{
// 之所以要使用下面这条语句,是因为要使用MySQL的驱动,所以我们要把它驱动起来,
// 可以通过Class.forName把它加载进去,也可以通过初始化来驱动起来,下面三种形式都可以
Class.forName("com.mysql.jdbc.Driver");// 动态加载mysql驱动
// or:
// com.mysql.jdbc.Driver driver = new com.mysql.jdbc.Driver();
// or:
// new com.mysql.jdbc.Driver();
System.out.println("成功加载Mysql驱动程序");
// 一个Connection代表一个数据库连接
conn = DriverManager.getConnection(url);
// Statement里面带有很多方法,比如executeUpdate可以实现插入,更新和删除等
Statement stmt = conn.createStatement();
sql = "create table student(NO char(20),name varchar(20),primary key(NO))";
int result = stmt.executeUpdate(sql);// executeUpdate语句会返回一个受影响的行数,如果返回-1就没有成功
if(result != -1){
System.out.println("创建数据表成功");
sql = "insert into student(NO,name) values('2018001','小明')";
result = stmt.executeUpdate(sql);
sql = "insert into student(NO,name) values('2018002','小红')";
result = stmt.executeUpdate(sql);
sql = "select * from student";
ResultSet rs = stmt.executeQuery(sql);// executeQuery会返回结果的集合,否则返回空值
System.out.println("学号\t姓名");
while (rs.next()) {
System.out
.println(rs.getString(1) + "\t" + rs.getString(2));// 入如果返回的是int类型可以用getInt()
}
}
}catch (SQLException e){
System.out.println("MySQL操作错误");
e.printStackTrace();
}catch (Exception e){
e.printStackTrace();
}finally{
conn.close();
}
}
遇到的问题:
细节决定成败!!
有个报警:
Mon Apr 02 16:58:02 CST 2018 WARN: Establishing SSL connection without server's identity verification is not recommended. According to MySQL 5.5.45+, 5.6.26+ and 5.7.6+ requirements SSL connection must be established by default if explicit option isn't set. For compliance with existing applications not using SSL the verifyServerCertificate property is set to 'false'. You need either to explicitly disable SSL by setting useSSL=false, or set useSSL=true and provide truststore for server certificate verification.
Mon Apr 02 16:58:02 CST 2018 WARN:建议不建议使用服务器身份验证建立SSL连接。根据MySQL 5.5.45+,5.6.26+和5.7.6+的要求,如果未设置显式选项,则必须默认建立SSL连接。为了符合不使用SSL的现有应用程序,verifyServerCertificate属性设置为'false'。您需要通过设置useSSL = false显式禁用SSL,或者设置useSSL = true并为服务器证书验证提供信任库。
收获:
多种途径加载jar,同时也是maven项目管理的好处。一开始刚看到这个方法那个方法头皮都抓烂了。感觉环境配置要熟悉,基本原理懂就差不多了,没必要深究框架结构的每个步骤。我们最主要学习的Java这门语言核心原理。然后再来研究Java延伸出的框架和其他项目等,个人理解不知道对不对。
评论