• java圣经sqlite3数据库


    1. package b;
    2. import java.awt.Color;
    3. import java.awt.Font;
    4. import java.awt.event.ActionEvent;
    5. import java.awt.event.ActionListener;
    6. import java.sql.Connection;
    7. import java.sql.DriverManager;
    8. import java.sql.PreparedStatement;
    9. import java.sql.ResultSet;
    10. import java.util.ArrayList;
    11. import java.util.HashMap;
    12. import javax.swing.JFrame;
    13. import javax.swing.JMenu;
    14. import javax.swing.JMenuBar;
    15. import javax.swing.JMenuItem;
    16. import javax.swing.JOptionPane;
    17. import javax.swing.JScrollPane;
    18. import javax.swing.JTextPane;
    19. import javax.swing.plaf.FontUIResource;
    20. import javax.swing.text.Style;
    21. import javax.swing.text.StyleConstants;
    22. import javax.swing.text.StyledDocument;
    23. public class Main extends JFrame implements ActionListener {
    24. ArrayList als = select();
    25. String[] lei = { "律法书", "历史书", "诗歌·智慧书", "先知书", "四福音", "教会历史", "书信", "对约翰的启示" };
    26. JMenuBar jmb = new JMenuBar();
    27. JMenu[] jm = new JMenu[lei.length];
    28. JMenuItem[] jmi = new JMenuItem[als.size()];
    29. JTextPane jtp = new JTextPane();
    30. JScrollPane jsp = new JScrollPane(jtp);
    31. FontUIResource fuir = new FontUIResource("微软雅黑", Font.BOLD, 88);
    32. StyledDocument sd = jtp.getStyledDocument();
    33. Style sty = jtp.addStyle(null, null);
    34. public Main() {
    35. for (int i = 0; i < lei.length; i++) {
    36. jm[i] = new JMenu(lei[i]);
    37. jmb.add(jm[i]);
    38. }
    39. for (int i = 0; i < 5; i++) {
    40. jmi[i] = new JMenuItem(als.get(i));
    41. jmi[i].addActionListener(this);
    42. jmi[i].setBackground(Color.RED);
    43. jm[0].add(jmi[i]);
    44. }
    45. for (int i = 5; i < 17; i++) {
    46. jmi[i] = new JMenuItem(als.get(i));
    47. jmi[i].addActionListener(this);
    48. jmi[i].setBackground(Color.ORANGE);
    49. jm[1].add(jmi[i]);
    50. }
    51. for (int i = 17; i < 22; i++) {
    52. jmi[i] = new JMenuItem(als.get(i));
    53. jmi[i].addActionListener(this);
    54. jmi[i].setBackground(Color.YELLOW);
    55. jm[2].add(jmi[i]);
    56. }
    57. for (int i = 22; i < 39; i++) {
    58. jmi[i] = new JMenuItem(als.get(i));
    59. jmi[i].addActionListener(this);
    60. jmi[i].setBackground(new Color(146, 208, 80));
    61. jm[3].add(jmi[i]);
    62. }
    63. for (int i = 39; i < 43; i++) {
    64. jmi[i] = new JMenuItem(als.get(i));
    65. jmi[i].addActionListener(this);
    66. jmi[i].setBackground(new Color(0, 176, 80));
    67. jm[4].add(jmi[i]);
    68. }
    69. for (int i = 43; i < 44; i++) {
    70. jmi[i] = new JMenuItem(als.get(i));
    71. jmi[i].addActionListener(this);
    72. jmi[i].setBackground(new Color(0, 176, 240));
    73. jm[5].add(jmi[i]);
    74. }
    75. for (int i = 44; i < 65; i++) {
    76. jmi[i] = new JMenuItem(als.get(i));
    77. jmi[i].addActionListener(this);
    78. jmi[i].setBackground(new Color(0, 112, 192));
    79. jm[6].add(jmi[i]);
    80. }
    81. for (int i = 65; i < 66; i++) {
    82. jmi[i] = new JMenuItem(als.get(i));
    83. jmi[i].addActionListener(this);
    84. jmi[i].setBackground(Color.MAGENTA);
    85. jm[7].add(jmi[i]);
    86. }
    87. jtp.setEditable(false);
    88. jtp.setBackground(Color.BLACK);
    89. jtp.setFont(fuir);
    90. jtp.setText("请选择菜单中的卷,再输入要查询的章节数字,中间用空格隔开.例如查询创世记第1章第1节则先选择律法书菜单里面的创世记,接下来在弹出的提示框中输入1 1(注:1 1之间中间用空格隔开)\n");
    91. this.setJMenuBar(jmb);
    92. this.add(jsp);
    93. this.setSize(1000, 700);
    94. this.setTitle("圣经投屏");
    95. }
    96. public static void main(String[] args) {
    97. Main m = new Main();
    98. m.setExtendedState(MAXIMIZED_BOTH);
    99. m.setDefaultCloseOperation(EXIT_ON_CLOSE);
    100. m.setVisible(true);
    101. }
    102. public static ArrayList select() {
    103. ArrayList als = new ArrayList();
    104. try {
    105. Class.forName("org.sqlite.JDBC");
    106. try (Connection conn = DriverManager.getConnection("jdbc:sqlite:hb.sqlite3")) {
    107. try (PreparedStatement ps = conn
    108. .prepareStatement("select distinct juan from t_hb order by rowid asc")) {
    109. try (ResultSet rs = ps.executeQuery()) {
    110. while (rs.next()) {
    111. als.add(rs.getString("juan"));
    112. }
    113. }
    114. }
    115. }
    116. } catch (Exception e) {
    117. e.printStackTrace();
    118. }
    119. return als;
    120. }
    121. public static ArrayList> select(String juan, String zhang, String jie) {
    122. ArrayList> alhmss = new ArrayList>();
    123. try {
    124. Class.forName("org.sqlite.JDBC");
    125. try (Connection conn = DriverManager.getConnection("jdbc:sqlite:hb.sqlite3")) {
    126. try (PreparedStatement ps = conn.prepareStatement(
    127. "select juan, zhang, jie, jingwen from t_hb where juan = ? and zhang = ? and jie between ? and 200")) {
    128. ps.setString(1, juan);
    129. ps.setString(2, zhang);
    130. ps.setString(3, jie);
    131. try (ResultSet rs = ps.executeQuery()) {
    132. while (rs.next()) {
    133. HashMap hmss = new HashMap();
    134. hmss.put("juan", rs.getString("juan"));
    135. hmss.put("zhang", rs.getString("zhang"));
    136. hmss.put("jie", rs.getString("jie"));
    137. hmss.put("jingwen", rs.getString("jingwen"));
    138. alhmss.add(hmss);
    139. }
    140. }
    141. }
    142. }
    143. } catch (Exception e) {
    144. e.printStackTrace();
    145. }
    146. return alhmss;
    147. }
    148. @Override
    149. public void actionPerformed(ActionEvent ae) {
    150. String s = ae.getActionCommand();
    151. String shuru = JOptionPane.showInputDialog("请输入要查询的章节(例如查找所在卷1章1节到最后1节则输入:1 1(中间用空格隔开,不用输入结束的章节)):", "1 1")
    152. .trim();
    153. if (shuru == null) {
    154. return;
    155. }
    156. if (shuru.equals("")) {
    157. return;
    158. }
    159. String[] zhangjie = shuru.split(" ");
    160. if (!zhangjie[0].trim().matches("^[0-9]*$") || !zhangjie[1].trim().matches("^[0-9]*$")) {
    161. return;
    162. }
    163. ArrayList> alhmss = this.select(s, zhangjie[0], zhangjie[1]);
    164. jtp.setText("");
    165. for (int i = 0; i < alhmss.size(); i++) {
    166. String zhang = alhmss.get(i).get("zhang");
    167. String jie = alhmss.get(i).get("jie");
    168. String jingwen = alhmss.get(i).get("jingwen");
    169. String zhangjiejingwen = zhang + ":" + jie + jingwen + "\n";
    170. if (i % 3 == 0) {
    171. StyleConstants.setForeground(sty, Color.CYAN);
    172. } else if (i % 3 == 1) {
    173. StyleConstants.setForeground(sty, Color.MAGENTA);
    174. } else if (i % 3 == 2) {
    175. StyleConstants.setForeground(sty, Color.YELLOW);
    176. } else {
    177. StyleConstants.setForeground(sty, Color.WHITE);
    178. }
    179. try {
    180. sd.insertString(sd.getLength(), zhangjiejingwen, sty);
    181. } catch (Exception e) {
    182. e.printStackTrace();
    183. }
    184. this.jtp.setCaretPosition(0);
    185. }
    186. }
    187. }

  • 相关阅读:
    09-JVM垃圾收集底层算法实现
    linux
    大数据运维实战第十三课 Spark Standalone 模式的构建以及 Spark 与 Yarn 的整合
    微信小程序
    xxl-job分布式调度框架
    cookie信息无法获取问题研究
    针对时间的功能测试点,这里给你总结全面了
    自动保存恢复tmux会话 关机重启再也不怕
    【SNMP】snmp trap 与介绍、安装、命令以及Trap的发送与接收java实现
    基于springboot的高校毕业设计选题系统
  • 原文地址:https://blog.csdn.net/www_oracle_com/article/details/134337425