JDBC基础Statement
#JDBC是sun公司推出,整合了所有数据库的一种接口(JAVA语言),各个数据库接口的具体实现由数据库厂商提供
#所以,我们使用JDBC时,需要下载各个厂商提供的jar包,例如mysql_jar包,并将包导入
···使用JDBC
1.与数据库建立链接
#与数据库建立链接需要四大参数
1.类名 2.数据库url 3.username 4.password
# 第一步称之为加载驱动//例如mysql为Class.Forname(com.mysql.jdbc.Driver),其中类名是JDBC规定的
# 第二步是建立连接对象
#例如 Connection con = DriverManager.getConnection("url", "username", "password")
# 数据库的url是指告诉驱动,你所要链接的数据库是哪一个
# 例如:"jdbc:mysql://localhost:3306/sql_name"
# 这样的url是必须背会,通用公式为"驱动接口:数据库厂商://地址:端口:数据库名称"
# 其后的usernam和password是用户定义的用户名和密码
**注最新版的sql8.0的类名格式是jdbc.jc.mysql.Driver
**因为mysql8.0默认时区是美国,使用我们需要调整时区才能正常链接,否则会出现报错
2.对数据库进行增、删、改(Statement)
#通过Connection创建Statement
#例如: Statement statement = con.creatStatement();
#Statement可以调用int executeUpdate(String sql)来实现DDl、DML语句
# String sql = "INSERT INTO STU VALUES('ITCAST_0003', 'wangwu', 83, 'male')";
# String sql = "UPDATE STU SET name = 'zhaoliu' age = 82 SEX = 'malel' WHERE NUMBER = 'ITCAST0003'";
# String sql = "DELETE * FROM STU";
# statement.executeUpdate(sql); //增删改都可以以这样的方式进行
3.对数据库进行查询操作(Statement)
#对数据库的查询大体分为四步
#1. 建立链接,获取Connection对象
#2. 获取Statement对象
#3. 获取ResultSet对象,解析ResultSet对象,得到值
**获取ResultSet对象
**ResultSet res = statement.executeQuery();
#4. 关闭资源,connection,statement,resultset三个对象都得关闭
**解析ResultSet对象的方法
**对于我们要找的内容,在数据库中以表格的形式存在,我们只要确定他的行与列就可以找到
**我们使用ResultSet.next()方法来确定行,使用ResulSet.getxxxx()方法来确定列
**关于ResultSet.getxxxx()是ResuSet对象提供的一个方法集合有以下方法:
** >ResultSet.getint(int i) //i是列数,也可以使用字符串
** >ResultSet.getString("列名")
** >ResultSet.getDouble()
** >ResultSet.getDate()
** >ResultSet.gettime()
** >ResultSet.getObject()
4.preparedStatement的使用
..使用preparedStatementd的必要性及好处
1.防止SQl注入
2.可维护性、可读性性好
3.效率高
#preparedStament,称为预编译语句,故名思意,在运行时preparedStatement对象是已经编译过的语句不需要DBMS编译,所以他比普通的Statement效率高
#preparedStatement的使用方法见下述代码
1 static public boolean funl(String username, String user_password) throws SQLException , ClassNotFoundException{ 2 //定义四大参数 3 String url = "jdbc:mysql://localhost:3306/mysql3?serverTimezone=GMT%2B8"; 4 String user = "root"; 5 String password = "123456"; 6 7 //加载类名 8 Class.forName("com.mysql.cj.jdbc.Driver"); 9 10 //获取链接 11 Connection connection = DriverManager.getConnection(url, user, password); 12 13 //创建一个sqk语句,其中‘?’为占位符 14 String sql = "SELECT * FROM STU WHERE number = ? AND name = ?"; 15 16 //创建PreparedStatement对象,这里可以看到PreparedStatement对象自创建就与一个sql语句对应! 17 PreparedStatement preparedStatement = connection.prepareStatement(sql); 18 19 //定义其中的参数,数量要与sql语句中的占位符‘?’相同,否贼会报错 20 preparedStatement.setString(1,username); 21 preparedStatement.setString(1,user_password); 22 23 //获得结果集 24 ResultSet resultSet = preparedStatement.executeQuery(); 25 return resultSet.next(); 26 }