mysql数据库连接总结
2016-06-21 19:49
507 查看
数据库连接总结
第一步:加载驱动程序(应用反射机制)
Class.forName(“com.jdbc.mysql.Driver”);
第二步:提供连接数据库的URL(协议/子协议/数据源标识/端口号/数据库名?字符编码集)
String
url =
"jdbc:mysql://localhost:3306/salary_manage?UseUnicoding =true&characterEncoding =utf8";
第三步:连接数据库
在连接数据之前,需要提供用户名和密码;
String user =
“用户名”;
String password =
“密码”
Connection
conn =
DriverManager.getConnection(url,
user,
password);
此时如果conn!=null 就表示数据连接数据库成功!
那既然连接数据库成功?我们最终的目的是为了操作数据库,那怎么样做呢?就是执行SQL语句。在执行SQL语句之前我们还需要做点事情!
第一步:建立一个Statement对象;
第二步;执行SQL语句
方法一:执行SQL静态语句,使用Statement获得实例,如:
Statement stm =
(Statement) conn.createStatement();
String
sql =
"insert users values(null,'黄蓉','huangrong','women','2016-6-21')";
int
num=stm.executeUpdate(sql);//返回一个整型
System.out.println("插入"+num+"条数据成功");
第一句语句就是获得Statement实例;
第二条语句就是sql语句
第三条就是使用executeUpdate()方法执行SQL语句。
方法二:执行动态的SQL语句,就是可以进行预编译
首先:定义失去了语句,需要设置的值都用’?‘表示。如下
String
sql =
"insert use
fa93
rs values(?,?,?,?,?)";
其次,使用prepareStatement(sql)方法来获得一个PrepareStatement实例,此时会先对sql进行预编译。
其次,就是给个字段赋值如下
//设置值
pst.setInt(1,
59);
pst.setString(2,
"黄小蓉");
pst.setString(3,
"huangrong");
pst.setString(4,
"women");
pst.setString(5,
"2016-6-12");
最后,执行执行SQL语句,此时是无参的
num=pst.executeUpdate();
上面的操作可以真多insert,delete以及update,但是对于select稍微有些变化!
先看一个例子:
String
sql =
"select * from users ";
PreparedStatement pst =
(PreparedStatement) conn.prepareStatement(sql);
ResultSet
rs = (ResultSet)
pst.executeQuery();
while(rs.next()){
int id =
rs.getInt("id");
String
name =
rs.getString("name");
String
password =
rs.getString("password");
String
sex =
rs.getString("sex");
String
birth =
rs.getString("birth");
System.out.println(id+"\t"+name+"\t"+password+"\t"+sex+"\t"+birth);
}
如上例,获得Statement实例还是一样的,只是在执行SQL语句的方法不一样,因为我们在select可能或有多个结果,所以就是使用executeQuery()返回一个结果集,而executeUpdate只是返回一个结果。最终通过结果集的next()方法判断结果集中是否还有记录,就通过字段名得到字段的的取值,最终输出!
对于不使用预编译,也是一样的。如下例:
String
sql =
"select * from users ";
Statement
st = (Statement)
conn.createStatement();
ResultSet
rs = (ResultSet)
st.executeQuery(sql);
while(rs.next()){
int id =
rs.getInt("id");
String
name =
rs.getString("name");
String
password =
rs.getString("password");
String
sex =
rs.getString("sex");
String
birth =
rs.getString("birth");
System.out.println(id+"\t"+name+"\t"+password+"\t"+sex+"\t"+birth);
}
第一步:加载驱动程序(应用反射机制)
Class.forName(“com.jdbc.mysql.Driver”);
第二步:提供连接数据库的URL(协议/子协议/数据源标识/端口号/数据库名?字符编码集)
String
url =
"jdbc:mysql://localhost:3306/salary_manage?UseUnicoding =true&characterEncoding =utf8";
第三步:连接数据库
在连接数据之前,需要提供用户名和密码;
String user =
“用户名”;
String password =
“密码”
Connection
conn =
DriverManager.getConnection(url,
user,
password);
此时如果conn!=null 就表示数据连接数据库成功!
那既然连接数据库成功?我们最终的目的是为了操作数据库,那怎么样做呢?就是执行SQL语句。在执行SQL语句之前我们还需要做点事情!
第一步:建立一个Statement对象;
第二步;执行SQL语句
方法一:执行SQL静态语句,使用Statement获得实例,如:
Statement stm =
(Statement) conn.createStatement();
String
sql =
"insert users values(null,'黄蓉','huangrong','women','2016-6-21')";
int
num=stm.executeUpdate(sql);//返回一个整型
System.out.println("插入"+num+"条数据成功");
第一句语句就是获得Statement实例;
第二条语句就是sql语句
第三条就是使用executeUpdate()方法执行SQL语句。
方法二:执行动态的SQL语句,就是可以进行预编译
首先:定义失去了语句,需要设置的值都用’?‘表示。如下
String
sql =
"insert use
fa93
rs values(?,?,?,?,?)";
其次,使用prepareStatement(sql)方法来获得一个PrepareStatement实例,此时会先对sql进行预编译。
其次,就是给个字段赋值如下
//设置值
pst.setInt(1,
59);
pst.setString(2,
"黄小蓉");
pst.setString(3,
"huangrong");
pst.setString(4,
"women");
pst.setString(5,
"2016-6-12");
最后,执行执行SQL语句,此时是无参的
num=pst.executeUpdate();
上面的操作可以真多insert,delete以及update,但是对于select稍微有些变化!
先看一个例子:
String
sql =
"select * from users ";
PreparedStatement pst =
(PreparedStatement) conn.prepareStatement(sql);
ResultSet
rs = (ResultSet)
pst.executeQuery();
while(rs.next()){
int id =
rs.getInt("id");
String
name =
rs.getString("name");
String
password =
rs.getString("password");
String
sex =
rs.getString("sex");
String
birth =
rs.getString("birth");
System.out.println(id+"\t"+name+"\t"+password+"\t"+sex+"\t"+birth);
}
如上例,获得Statement实例还是一样的,只是在执行SQL语句的方法不一样,因为我们在select可能或有多个结果,所以就是使用executeQuery()返回一个结果集,而executeUpdate只是返回一个结果。最终通过结果集的next()方法判断结果集中是否还有记录,就通过字段名得到字段的的取值,最终输出!
对于不使用预编译,也是一样的。如下例:
String
sql =
"select * from users ";
Statement
st = (Statement)
conn.createStatement();
ResultSet
rs = (ResultSet)
st.executeQuery(sql);
while(rs.next()){
int id =
rs.getInt("id");
String
name =
rs.getString("name");
String
password =
rs.getString("password");
String
sex =
rs.getString("sex");
String
birth =
rs.getString("birth");
System.out.println(id+"\t"+name+"\t"+password+"\t"+sex+"\t"+birth);
}
相关文章推荐
- mysql 获取自增值
- message from server: "Host xxx is not allowed to connect to this MySQL server的解決
- MySQL存储过程游标示例
- innobackupex 升级mysql5.5到mysql5.7对系统性能不支持问题
- Mysql LAST_INSERT_ID函数
- mysql随机更新时间
- mysql数据库配置远程访问
- Ubuntu系统下无法进入mysql
- 编译C连接MySQL 提示 error while loading shared libraries: libmysqlclient.so.
- 按周,按月,按日,按小时分组统计数据
- mysql select for update
- mysql
- MySQL字符串函数
- mysql中的数据类型enum和set
- MySQL问题集锦
- MySQL问题集锦
- MySQL一些SQL技巧
- mysql后台线程
- mysql之预处理语句prepare、execute、deallocate
- Mysql、XSS 防御