JDBC以及IDEA相关优化设置
JDBC概念
JDBC(Java Data Base Connectivity,java数据库连接)是一种用于执行SQL语句的Java API,可以为多种关系数据库提供统一访问,它由一组用Java语言编写的类和接口组成。JDBC提供了一种基准,据此可以构建更高级的工具和接口,使数据库开发人员能够编写数据库应用程序。 有了JDBC,向各种关系数据发送SQL语句就是一件很容易的事。换言之,有了JDBC API,就不必为访问Sybase数据库专门写一个程序,为访问Oracle数据库又专门写一个程序,或为访问Informix数据库又编写另一个程序等等,程序员只需用JDBC API写一个程序就够了,它可向相应数据库发送SQL调用。同时,将Java语言和JDBC结合起来使程序员不必为不同的平台编写不同的应用程序,只须写一遍程序就可以让它在任何平台上运行,这也是Java语言“编写一次,处处运行”的优势。 简单地说,JDBC 可做三件事:与数据库建立连接、发送 操作数据库的语句并处理结果。
JDBC七个步骤
1.创建sql语句
2.注册驱动class.forName(String driverName)
3.建立连接
Connection conn=DriverManager.getConnection(String url,String username,String password)
4)获取statement对象
Statement state = con.createStatement();
或者PreparedStatement preStm = con.preparedStatement(sql);
5)执行sql语句
Result rs = state.executeQuery(sql);
int i = state.executeUpdate(sql);
或者
Result rs = preStm.executeQuery(sql);
int i=state.executeQuery(sql)
6)遍历结果集
while(rs.next()){
……
}
7)关闭连接
按顺序从内到外关
rs.close();
state.close();
con.close();
Java连接数据库
在连接数据库之前得先导包
Java连接MySQL的最新驱动包下载地址:https://dev.mysql.com/downloads/connector/j/
下载后是一个.jar的压缩包。
方法一:在IDEA左上角选择——“file”,“Project structure”,右边 “+” 号,点第一个——“jars or directories”,找到下载驱动的位置,选中它,再点ok就可以了。成功后可以在IDEA的External Libraries目录下找到这个jar驱动。
方法二:右键复制.jar的驱动包,粘贴进某个package里,右键 as a libraries,也可以实现导包。
加载数据库驱动
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver"); //使用try - catch 捕获异常,forName里面是固定格式
} catch (Exception e) {
e.printStackTrace();
}
连接数据库
3306/test指的是连接到test这个数据库,后面是用户名和密码。
//创建连接
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&characterEncoding=utf-8","root","123456");
return connection;
} catch (Exception e) {
e.printStackTrace();
return null;
}
封装在一个类里
这个DBUtil类里有两个静态方法,一个是连接数据库,一个是关闭数据库资源
public class DBUtil {
public static Connection connection(){
try {
//加载驱动
Class.forName("com.mysql.jdbc.Driver");
} catch (Exception e) {
e.printStackTrace();
}
//创建连接
try {
Connection connection = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/test?useSSL=true&characterEncoding=utf-8","root","123456");
return connection;
} catch (Exception e) {
e.printStackTrace();
return null;
}
}
public static void close(Connection connection, Statement statement, ResultSet rs) {
if (rs != null) {
try {
rs.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (statement != null) {
try {
statement.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
if (connection != null) {
try {
connection.close();
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
JDBC增删改查
我在这里将这4个功能封装起来,在UseService类中用4个静态方法实现。
增:
public static void Add(){
Scanner sc = new Scanner(System.in);
String ID,Name,Password;
Connection connection = DBUtil.connection();
String sql = "insert into user (id,name,password) values (?,?,?)";
try {
PreparedStatement statement = connection.prepareStatement(sql);
System.out.println("请输入ID");
ID = sc.nextLine();
System.out.println("请输入姓名");
Name = sc.nextLine();
System.out.println("请输入密码");
Password = sc.nextLine();
statement.setString(1,ID);
statement.setString(2,Name);
statement.setString(3,Password);
statement.executeUpdate();
System.out.println("添加成功");
} catch (SQLException e) {
e.printStackTrace();
}
删:
public static void Del(){
Scanner sc = new Scanner(System.in);
Connection connection = DBUtil.connection();
String sql = "delete from user where id=?";
try {
PreparedStatement statement = connection.prepareStatement(sql);
System.out.println("请输入ID");
String ID = sc.nextLine();
statement.setString(1,ID);
statement.executeUpdate();
System.out.println("删除成功");
} catch (SQLException e) {
e.printStackTrace();
}
}
改:
public static void Update(){
Scanner sc = new Scanner(System.in);
Connection connection = DBUtil.connection();
String sql = "update user set name = ? where name =?";
try {
PreparedStatement statement = connection.prepareStatement(sql);
System.out.println("请输入你要修改的姓名");
String no2 = sc.nextLine(); //修改前
System.out.println("请输入新姓名");
String no1 = sc.nextLine(); //修改后
statement.setString(1,no1);
statement.setString(2,no2);
statement.executeUpdate();
System.out.println("修改成功");
} catch (Exception e) {
e.printStackTrace();
}
}
查:
public static void Display(){
Connection connection = DBUtil.connection();
String sql = "select * from user";
try {
PreparedStatement statement = connection.prepareStatement(sql);
ResultSet resultSet = statement.executeQuery();
while (resultSet.next()){
System.out.println(resultSet.getString(1)+"\t"
+resultSet.getString(2)+"\t"
+resultSet.getString(3));
}
} catch (Exception e) {
e.printStackTrace();
}
}
通过 类名.方法名直接调用静态方法。
switch (choice){
case 1:
UserService.Add();
break;
case 2:
UserService.Del();
break;
case 3:
UserService.Display();
break;
case 4:
UserService.Update();
break;
default: flag = false;
}
IDEA优化
(感谢二狗子的分享)
IDEA优化配置、提高启动和运行速度
因为默认的配置比较的坑,需要提升性能(开发最好内存要大一点)。这时候需要打开路径 D:\Program Files\JetBrains\IntelliJ IDEA 2018.2.2\bin 下的文件 idea64.exe.vmoptions 将里面的配置参数调整大一些,这样会提升性能,甚至可以秒开IDEA。
三个参数:-Xms 最小启动内存参数; //建议内存8G以上的电脑开512m
-Xmx最大运行内存参数; //建议内存8G以上的电脑开2048m
-XX保留缓存内存参数。//建议内存8G以上的电脑开512m
IDEA优化设置
IDEA常快捷键
Alt+shift+S以及alt+insert: 实现自动生成get,set以及构造方法;
Ctrl+d删除一行
Ctrl+shift+O导入包
Ctrl+shift+F格式化代码
Ctrl+shift+Y转换大小写
Ctrl+F查找(当前文件)
Ctrl+H全局查找
双击shift查找文件
Tab以及shift+tab整体代码向后、向前移动
Alt+/提示代码操作
Alt+shift+R重命名参数和方法
Ctrl+alt+向下键复制一行
Ctrl+/单行注释
Ctrl+shift+/多行注释
Alt+上下键 : 选中单行或者多行向上或者向下移动
Ctrl+shift+T查看源码(当前java文件有的类,直接ctrl+点进去即可)
Alt+enter生成返回值/纠错(eclipse中是ctrl+1)
Alt+左右方向键 跳转上一个或者下一个编辑页面
Ctrl+减号或者ctrl+加号收缩或者展开单个方法
Ctrl+shift+减号或者Ctrl+shift+加号展开或者收缩全部方法
Ctrl+shift+H查看方法重写结构
Ctrl+alt+H 查看方法调用者
F4选中类 查看类继承关系