Java连接数据库
需要jar包的支持:
- java.sql
- javax.sql
- mysql-conneter-java…连接驱动
//普通类插入
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//配置信息
String url = "jdbc:vertica://10.1.136.28:5433/VMart";
String username = "* ";
String password = "*";
//1.加载驱动
Class.forName("com.vertica.jdbc.Driver");
//2 连接数据库,代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//3.向数据库发送sql的对象statement(普通的),PreparedStatement(预编译):用它作增删改查,即CRUD
Statement statement = connection.createStatement();
//4.编写sql
String sql = "select * from zjnu.yikatong";
//5.执行查询sql,返回一个结果集
ResultSet resultSet = statement.executeQuery(sql);
int rowCount = 0;
if (resultSet.next()) {
rowCount = resultSet.getInt(0);
}
System.out.println(rowCount);
//6.关闭连接,释放资源(一定要做),先开后关
resultSet.close();
statement.close();
connection.close();
}
}
//预编译插入
package com.zjnu;
import java.sql.*;
public class TestJDBC {
public static void main(String[] args) throws ClassNotFoundException, SQLException {
//配置信息
String url = "jdbc:vertica://10.1.136.28:5433/VMart";
String username = "*";
String password = "*";
//1.加载驱动
Class.forName("com.vertica.jdbc.Driver");
//2 连接数据库,代表数据库
Connection connection = DriverManager.getConnection(url, username, password);
//3.编写sql
String sql = "insert into zjnu.yikatong(CardNO, AccName, Percode) values (?,?,?);";
//4.预编译
PreparedStatement preparedStatement = connection.prepareStatement(sql);
preparedStatement.setInt(1,1);//给第一个占位符的值赋值为1;
preparedStatement.setString(2,"狂神说java");//给第二个占位符的值赋值为1;
preparedStatement.setInt(3,1020);//给第三个占位符的值赋值为1;
//5 执行sql
int i = preparedStatement.executeUpdate();
if (i > 0) {
System.out.println("插入成功");
}
//6.关闭连接,释放资源(一定要做),先开后关
preparedStatement.close();
connection.close();
}
}
导入数据库依赖
3、JDBC固定步骤com.vertica.jdbc vertica-jdbc 10.0.1-0
1、加载数据库
2、连接数据库,代表数据库
3、向数据库发送sql的对象Statement:CRUD
4、编写SQL(根据业务,不同的sql)
5、执行sql
6、结果集
7、关闭连接
4、事物要么都成功,要么都失败
ACID原则:保证数据的安全
1:开启事物 2:事物提交 commit() 3:事物回滚 rollback() 4:关闭事物
依赖包介绍。junit 。
如果junit的@Test标签读取,请修改Scope的包范围
junit
junit
4.12
com.zjnu
@Test注解只有在方法上有效,只要加了这个注解的方法,就可以直接运行!
搭建一个单元测试环境
import org.junit.Test;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
public class Test02 {
@Test
public void test() throws ClassNotFoundException, SQLException {
//配置信息
String url = "jdbc:vertica://10.1.136.28:5433/VMart";
String username = "*";
String password = "*";
Connection connection = null;
try {
//1.加载驱动
Class.forName("com.vertica.jdbc.Driver");
//2 连接数据库,代表数据库
connection = DriverManager.getConnection(url, username, password);
//3. 通知数据库开启事务
connection.setAutoCommit(false);
String sql1 = "update zjnu.acc set money = money-100 where name='A'";
String sql2 = "update zjnu.acc set money = money+100 where name='B'";
connection.prepareStatement(sql1).executeUpdate();
int i = 1 / 0;
connection.prepareStatement(sql2).executeUpdate();
connection.commit();//以上两条sql都执行成功了,就提交事物!
System.out.println("success");
} catch (Exception e) {
//如果出现异常,就通知数据库回滚操作
connection.rollback();
e.printStackTrace();
}finally {
connection.close();
}
}
}



