idea 使用笔记
自动导包

archetypeCatalog
internal
idea常用的快捷键
Alt+回车 导入包,自动修正
Ctrl+N 查找类
Ctrl+Shift+N 查找文件
Ctrl+Alt+L 格式化代码
Ctrl+Alt+O 优化导入的类和包
Alt+Insert 生成代码(如get,set方法,构造函数等)
Ctrl+E或者Alt+Shift+C 最近更改的代码
Ctrl+R 替换文本
Ctrl+F 查找文本
Ctrl+Shift+Space 自动补全代码
Ctrl+空格 代码提示
Ctrl+Alt+Space 类名或接口名提示
Ctrl+P 方法参数提示
Ctrl+Shift+Alt+N 查找类中的方法或变量
Alt+Shift+C 对比最近修改的代码
Shift+F6 重构-重命名
Ctrl+Shift+先上键
Ctrl+X 删除行
Ctrl+D 复制行
Ctrl+/ 或 Ctrl+Shift+/ 注释(// 或者/.../ )
Ctrl+J 自动代码
Ctrl+E 最近打开的文件
Ctrl+H 显示类结构图
Ctrl+Q 显示注释文档
Alt+F1 查找代码所在位置
Alt+1 快速打开或隐藏工程面板
Ctrl+Alt+ left/right 返回至上次浏览的位置
Alt+ left/right 切换代码视图
Alt+ Up/Down 在方法间快速移动定位
Ctrl+Shift+Up/Down 代码向上/下移动。
F2 或Shift+F2 高亮错误或警告快速定位
代码标签输入完成后,按Tab,生成代码。
选中文本,按Ctrl+Shift+F7 ,高亮显示所有该文本,按Esc高亮消失。
Ctrl+W 选中代码,连续按会有其他效果
选中文本,按Alt+F3 ,逐个往下查找相同文本,并高亮显示。
Ctrl+Up/Down 光标跳转到第一行或最后一行下
Ctrl+B 快速打开光标处的类或方法
Intellij IDEA最常用快捷键
1.Ctrl+E,可以显示最近编辑的文件列表
2.Shift+Click可以关闭文件
3.Ctrl+[或]可以跳到大括号的开头结尾
4.Ctrl+Shift+Backspace可以跳转到上次编辑的地方
5.Ctrl+F12,可以显示当前文件的结构
6.Ctrl+F7可以查询当前元素在当前文件中的引用,然后按F3可以选择
7.Ctrl+N,可以快速打开类
8.Ctrl+Shift+N,可以快速打开文件
9.Alt+Q可以看到当前方法的声明
10.Ctrl+W可以选择单词继而语句继而行继而函数
11.Alt+F1可以将正在编辑的元素在各个面板中定位
12.Ctrl+P,可以显示参数信息
13.Ctrl+Shift+Insert可以选择剪贴板内容并插入
14.Alt+Insert可以生成构造器/Getter/Setter等
15.Ctrl+Alt+V 可以引入变量。例如把括号内的SQL赋成一个变量
16.Ctrl+Alt+T可以把代码包在一块内,例如try/catch
17.Alt+Up and Alt+Down可在方法间快速移动
pom 文件
<dependencies>
<dependency>
<groupId>com.mchange</groupId>
<artifactId>c3p0</artifactId>
<version>0.9.5.2</version>
</dependency>
<dependency>
<groupId>org.junit.jupiter</groupId>
<artifactId>junit-jupiter-api</artifactId>
<version>RELEASE</version>
<scope>compile</scope>
</dependency>
<!-- https://mvnrepository.com/artifact/log4j/log4j -->
<dependency>
<groupId>log4j</groupId>
<artifactId>log4j</artifactId>
<version>1.2.17</version>
</dependency>
<!-- https://mvnrepository.com/artifact/mysql/mysql-connector-java -->
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.16</version>
</dependency>
</dependencies>
c3p0-config.xml
<?xml version="1.0" encoding="UTF-8"?>
<c3p0-config>
<default-config>
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/yangtao</property>
<property name="user">root</property>
<property name="password">12345678</property>
<property name="initialPoolSize">5</property>
<property name="maxPoolSize">20</property>
</default-config>
<named-config name="itheima">
<property name="driverClass">com.mysql.cj.jdbc.Driver</property>
<property name="jdbcUrl">jdbc:mysql://localhost:3306/yangtao</property>
<property name="user">root</property>
<property name="password">12345678</property>
</named-config>
</c3p0-config>
JDBCUtils
package com.s3potest;
import java.beans.PropertyVetoException;
import java.sql.*;
import com.mchange.v2.c3p0.ComboPooledDataSource;
public class jdbctool {
//从数据源中获取数据库的连接
public static Connection getConnection() throws SQLException {
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/yangtao");
dataSource.setUser("root");
dataSource.setPassword("12345678");
} catch (PropertyVetoException e) {
e.printStackTrace();
}
return dataSource.getConnection();
}
//释放资源,将数据库连接还给数据库连接池
public static void closeDB( Connection conn, Statement ps, ResultSet rs) {
try {
if (rs!=null) {
rs.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if (ps!=null) {
ps.close();
}
} catch (Exception e) {
e.printStackTrace();
} finally{
try {
if (conn!=null) {
conn.close();
}
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
//释放资源,将数据库连接还给数据库连接池
public static void closeDB(Statement ps,Connection conn) {
try {
if (ps!=null) {
ps.close();
}
} catch (SQLException e) {
e.printStackTrace();
} finally{
try {
if (conn!=null) {
conn.close();
}
} catch (SQLException e) {
e.printStackTrace();
}
}
}
}
测试
package com.s3potest;
import com.mchange.v2.c3p0.ComboPooledDataSource;
import org.apache.log4j.BasicConfigurator;
import org.junit.jupiter.api.Test;
import java.beans.PropertyVetoException;
import java.sql.*;
import java.util.logging.Level;
import java.util.logging.Logger;
/**
* * @description: TODO
* * @param ${tags}
* * @return ${return_type}
* * @throws
* * @author yangtao
* * @date $date$ $time$
*
*/
public class c3p0Test {
@Test
public void test(){
Logger logger = Logger.getLogger(c3p0Test.class.getName());
// Logger logger1 = Logger.getLogger(c3p0Test.class );
//使用默认的配置信息,不需要写log4j.properties
BasicConfigurator.configure();
//设置日志输出级别为info,这将覆盖配置文件中设置的级别
logger.setLevel(Level.INFO);
//下面的消息将被输出
logger.info("this is an info");
int a =123;
logger.info(a+"");
}
//
@Test
public void test2() {
Logger logger = Logger.getLogger(c3p0Test.class.getName());
logger.setLevel(Level.INFO);
Connection conn=null;
Statement ptsmt=null;
ResultSet rs=null;
try {
conn= jdbctool.getConnection();
String sql="insert t_user values (3,\"xianjinqiu\",\"001\");";
ptsmt=conn.createStatement();
ptsmt.execute(sql);
logger.info(""+conn);
} catch (SQLException e) {
e.printStackTrace();
}finally {
jdbctool.closeDB(ptsmt,conn);
}
}
@Test
public void test3(){
//
Connection conn=null;
Statement ptsmt=null;
ResultSet rs=null;
ComboPooledDataSource dataSource = new ComboPooledDataSource();
try {
dataSource.setDriverClass("com.mysql.cj.jdbc.Driver");
} catch (PropertyVetoException e) {
e.printStackTrace();
}
dataSource.setJdbcUrl("jdbc:mysql://localhost:3306/yangtao");
dataSource.setUser("root");
dataSource.setPassword("12345678");
String sql="select * from t_user ;";
// conn=dataSource.getConnection();
try {
conn=dataSource.getConnection();
// ptsmt.executeQuery("seclect * from t_user ;");
ptsmt = conn.createStatement();
rs=ptsmt.executeQuery(sql);
rs.next();
System.out.println(rs.getString("user_name"));
} catch (SQLException e) {
e.printStackTrace();
}
finally {
jdbctool.closeDB(conn,ptsmt,rs);
}
}
@Test
public void test4(){
Connection conn=null;
Statement ptsmt=null;
ResultSet rs=null;
try {
conn=jdbctool.getConnection();
} catch (SQLException e) {
e.printStackTrace();
}
String sql="select * from t_user ;";
try {
ptsmt = conn.createStatement();
rs=ptsmt.executeQuery(sql);
rs.next();
System.out.println(rs.getString("user_name"));
} catch (SQLException e) {
e.printStackTrace();
}
finally {
jdbctool.closeDB(conn,ptsmt,rs);
}
}
}
docker start mymysql
CREATE TABLE `t_article` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(80) NOT NULL,
`author` VARCHAR(30) NOT NULL,
`sort` VARCHAR(30) NOT NULL,
`time` DATETIME DEFAULT '2017-09-18 00:00:00',
`star` INT(11) DEFAULT '0',
`comment` INT(11) DEFAULT '0',
`visit` INT(11) DEFAULT '0',
`content` TEXT,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=10 DEFAULT CHARSET=utf8;
CREATE TABLE `t_article_delet` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`title` VARCHAR(50) NOT NULL,
`author` VARCHAR(30) NOT NULL,
`sort` VARCHAR(30) NOT NULL,
`time` DATETIME DEFAULT '2017-09-18 00:00:00',
`star` INT(11) DEFAULT '0',
`comment` INT(11) DEFAULT '0',
`visit` INT(11) DEFAULT '0',
`content` TEXT,
PRIMARY KEY (`id`)
) ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE `t_comment` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`article_id` INT(11) DEFAULT NULL,
`nickname` VARCHAR(30) DEFAULT NULL,
`content` TEXT,
`time` DATETIME DEFAULT '2017-09-18 00:00:00',
`star` INT(11) DEFAULT '0',
`diss` INT(11) DEFAULT '0',
PRIMARY KEY (`id`),
KEY `article_id` (`article_id`),
CONSTRAINT `article_id` FOREIGN KEY (`article_id`) REFERENCES `t_article` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=INNODB AUTO_INCREMENT=19 DEFAULT CHARSET=utf8;
CREATE TABLE `t_tag` (
`id` INT(11) DEFAULT NULL,
`tag` VARCHAR(30) DEFAULT NULL,
KEY `id` (`id`),
CONSTRAINT `t_tag_ibfk_1` FOREIGN KEY (`id`) REFERENCES `t_article` (`id`) ON DELETE CASCADE ON UPDATE NO ACTION
) ENGINE=INNODB DEFAULT CHARSET=utf8;
CREATE TABLE `t_user` (
`user_id` INT(10) UNSIGNED NOT NULL AUTO_INCREMENT COMMENT 'primary_key',
`user_name` VARCHAR(20) NOT NULL COMMENT 'username',
`user_password` VARCHAR(20) NOT NULL COMMENT 'password',
PRIMARY KEY (`user_id`)
) ENGINE=INNODB AUTO_INCREMENT=2 DEFAULT CHARSET=utf8;
CREATE TABLE `t_visitor` (
`id` INT(11) NOT NULL AUTO_INCREMENT,
`ip` VARCHAR(50) DEFAULT NULL,
`time` VARCHAR(50) DEFAULT NULL,
`web_ip` VARCHAR(50) DEFAULT NULL,
`host` VARCHAR(50) DEFAULT NULL,
PRIMARY KEY (`id`)
) ENGINE=INNODB AUTO_INCREMENT=52 DEFAULT CHARSET=utf8;
show tables ;
select * from t_article;

浙公网安备 33010602011771号