先下载phpstudy(里面已经集成有mysql 和以后要用到的tomcat)
然后下载jdbc地址:https://www.mysql.com/products/connector
下载对应的jdbc然后在eclipse配置jdbc
窗口---首选项--java---构建路径---用户库---新建---输入jdbc--打勾---确定
选择添加外部jar
选择解压出来的jdbc文件
检查是否导入成功
在头部输入 import org.
看后面是否出现gjt.mm.mysql.*;
有就导入成功
接下来用代码检验
import java.sql.*;
public class MySqlTest {
public static void main(String[]arg){
try {
Class.forName("com.mysql.jdbc.Driver");//加载jdbc驱动
//Class.forName("org.gjt.mm.mysql.Driver");注意是过时的加载驱动的语句
System.out.println("已经加载驱动");
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");//连接URL jdbc:mysql//服务器地址/数据库名 ,后面的2个参数分别是登陆用户名和密码
System.out.println("连接数据库成功");
Statement st= cn.createStatement();// 创建statement(声明)用来执行SQL语句
ResultSet rs = st.executeQuery("select * from name");//查询数据 name是你表名,里面的sql语句
String sql = "insert into users values(2,'ajax','ajax','ajax@qq.com')";
//建立PreparedStatement对象
PreparedStatement pst = conn.prepareStatement(sql);
pst.executeUpdate();
while(rs.next()){
System.out.println(rs.getString("username"));//username是你的表里面列名字
}
}catch(Exception e){
System.out.println("erro!");
e.printStackTrace();//注意打印错误 才能及时发现那里错了
}
}
}
总结:java连接mysql数据库
1、将驱动载入IDE
2、调用Class.forName("com.mysql.jdbc.Driver");载入驱动
3、调用DriverManager对象的getConnection(url , username , password ) ; 获得一个connection对象,连接数据库
Connection cn = DriverManager.getConnection("jdbc:mysql://localhost:3306/test", "root", "root");
//问题1:如何理解
4、创建对应的Statement对象 ,该对象下的方法用于执行SQL语句
Statement stmt = con.createStatement();
preparedStatement pstmt = con.prepareStatement(sql) ;
CallableStatement cstmt = con.prepareCall("{CALL demoSp(? , ?)}") ;
5、调用对应的excteQuery()等方法来执行SQL语句;
String sql = "select * from users";//要执行的SQL
/*在查询询数据表时,需要用到ResultSet接口,通过该接口的实例可以获得检索结果集,以及对应数据表的接口信息。*/
ResultSet rs = stmt.executeQuery(sql);//创建数据对象
//问题2:statement和excteQurey的联系
6、处理结果
- 两种情况:
- 1)执行更新返回的是本次操作影响到的记录数。
- 2)执行查询返回的结果是一个ResultSet对象。
- ResultSet包含符合SQL语句中条件的所有行,并且它通过一套get方法提供了对这些行中数据的访问。
while (rs.next()) {
}
7、关闭JDBC对象,释放资源- 操作完成以后要把所有使用的JDBC对象全都关闭,以释放JDBC资源,关闭顺序和声明顺序相反:
- 1)关闭记录集
- 2)关闭声明
- 3)关闭连接对象
rs.close(); stmt.close(); conn.close();
ps: 本文引用自①
//问题1:如何理解
Connection cn = DriverManager.getConnection();
其中Connection是接口,JdbcConnection是一个普通的类,getConnection()方法是静态方法,它们之所以能用 = 连起来,因为getConnection()方法返回的是实现了Connection接口的类的实例。(引用 ②)
//问题2:statement和excteQurey的联系
实际上有三种 Statement 对象,它们都作为在给定连接上执行 SQL语句的包容器:
(1),Statement、 对象用于执行不带参数的简单 SQL 语句;
(2),PreparedStatement(它从 Statement 继承而来)用于执行带或不带 IN参数的预编译 SQL 语句
(3),CallableStatement(它从 PreparedStatement 继承而来)用于执行对数据库已存储过程的调用。添加了处理 OUT 参 数的方法
Statement 接口提供了三种执行 SQL 语句的方法:executeQuery、executeUpdate 和 execute。使用哪一个方法由 SQL 语句所产生的内容决定。
方法 executeQuery 用于产生单个结果集的语句,例如 SELECT 语句。
方法 executeUpdate 用于执行 INSERT、UPDATE 或 DELETE 语句以及 SQL DDL(数据定义语言)语句,例如 CREATE TABLE 和 DROP TABLE。INSERT、UPDATE 或 DELETE 语句的效果是修改表中零行或多行中的一列或多列。。executeUpdate 的返回值是一个整数,指示受影响的行数(即更新计数)。对于 CREATE TABLE 或 DROP TABLE 等不操作行的语句,executeUpdate 的返回值总为零
方法 execute 用于执行返回多个结果集、多个更新计数或二者组合的语句。
{在调用方法 execute 之后要做的第一件事情是调用 getResultSet 或 getUpdateCount。调用方法 getResultSet 可以获得两个或多个 ResultSet 对象中第一个对象;或调用方法 getUpdateCount 可以获得两个或多个更新计数中第一个更新计数的内容。
(stmt.getMoreResults() == false) && (stmt.getUpdateCount() == -1))//无更新}
①https://blog.csdn.net/u010297791/article/details/52637868(原创)
②https://blog.csdn.net/baoxiaofeicsdn/article/details/48826831(原创)关键字:类的实例化 factory方法
③https://www.cnblogs.com/killer-xc/p/7941343.html(转载)