一、根据《java2实用教程》和蓝墨云学习视频学习第十一章;java
二、尝试将课本重点内容用本身的话复述手打;mysql
三、输入课本代码并上传码云;git
四、使用IDEA调试代码;sql
五、学习使用MySQL。数据库
百度MySQL,进入官网,选择社区版并下载,具体选项如图;
apache
解压过程略数组
mysqld --initialize-insecure
mysqladmin -u root -p password
11.4 JDBC服务器
11.5 链接数据库工具
应用程序负责加载JDBC-MySQL数据库驱动的代码以下: try{ Class.forName("com.mysql.jdbc.Driver"); } catch(Exception e){}
Connection getConnection(java.lang.String, java.lang.String, java.lang.String) Connection getConnection(java.lang.String)
这两个方法均可能抛出SQLException异常,DriverManager类调用上述方法能够和数据库创建链接,便可返回一个Connection对象。sqlserver
使用Connection getConnection(java.lang.String) 方法创建链接的代码以下:
Connection con; String uri = "jdbc:mysql://192.168.100.1:3306/students?user=root&password=&useSSL=true"; try{ con = DriverManager.getConnection(uri); //链接代码 } catch(SQLException e){ System.out.println(e); }
若是root用户密码是xx,将&password=更改成&password=xx便可
Connection con; String uri = "jdbc:mysql:// 192.168.100.1:3306/students? useSSL=true"; String user ="root"; String password =""; try{ con = DriverManager.getConnection(uri,user,password); //链接代码 } catch(SQLException e){ System.out.println(e); }
characterEncoding
,并取值gb2312
或utf-8
String uri = "jdbc:mysql://localhost/students?useSSL=true&characterEncoding=utf-8"; con = DriverManager.getConnection(uri, "root",""); //链接代码
11.6 查询操做
try{Statement sql = con.createStatement(); } catch(SQLException e){}
ResultSet rs = sql.executeQuery("SELECT * FROM students");
ResultSet rs = sql.executeQuery("SELECT * FROM students");以后马上关闭链接:con.close();,程序将没法获取rs中的数据。
11.6.1 顺序查询
11.6.2 控制游标
Statement stmt = con.createStatement(int type ,int concurrency);
11.6.3 条件与排序查询
where
子语句通常格式: select 字段 from 表名 where 条件
select name,height from mess where name='李四'
select * from mess where height>1.60 and height<=1.8
select * from mess where name like '%林%' order by name
11.7 更新、添加与删除操做
update 表 set 字段 = 新值 where <条件子句>
insert into 表(字段列表) values (对应的具体的记录)
insert into 表 values (对应的具体的记录)
delete from 表名 where <条件子句>
11.8 使用预处理语句
11.8.1 预处理语句的优势
ResultSet executeQuery() boolean execute() int executeUpdate()
11.8.2 使用通配符
String str = "select * from mess where height < ? and name= ? " PreparedStatement sql = con.prepareStatement(str);
在sql对象执行以前,必须调用相应的方法设置通配符?表明的具体值,如:
sql.setFloat(1,1.76f); sql.setString(2, "武泽");
void setDate(int parameterIndex, Date x) void setDouble(int parameterIndex, double x) void setFloat(int parameterIndex, float x) void setInt(int parameterIndex, int x) void setLong(int parameterIndex, long x) void setString(int parameterIndex, String x)
11.9 通用查询
ResultSet
对象rs
调用getMetaData()
方法返回一个ResultSetMetaData
对象(结果集的元数据对象):ResultSetMetaData metaData = rs.getMetaData();
metaData
,调用getColumnCount()
方法就能够返回结果集rs中的列的数目:int columnCount = metaData.getColumnCount();
metaData
调用getColumnName(int i)
方法就能够返回结果集rs中的第i列的名字:String columnName = metaData.getColumnName(i);
11.10 事务
11.10.1 事务及处理
11.10.2 JDBC事务处理步骤
11.11链接SQL Server数据库
try { Class.forName("com.microsoft.sqlserver.jdbc.SQLServerDriver"); } catch(Exception e){ }
try{ String uri= "jdbc:sqlserver://192.168.100.1:1433;DatabaseName=warehouse"; String user="sa"; String password="dog123456"; con=DriverManager.getConnection(uri,user,password); } catch(SQLException e){ System.out.println(e); }
11.12链接Derby数据库
Connection con = DriverManager.getConnection("jdbc:derby:students;create=true");