idea 使用笔记

自动导包

![image-20191031121142761](/Users/yangtao/Library/Application Support/typora-user-images/image-20191031121142761.png)

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;
posted @ 2019-11-06 00:36  由来一声笑  阅读(115)  评论(0)    收藏  举报